如何匹配除一个特定整数(例如914)以外的所有3位整数。
获取所有3位整数非常简单[0=9][0-9][0-9]
尝试像[0-8][0,2-9][0-3,5-9]这样的操作,会从集合中除去914以外的更多整数。
我们如何解决这个问题?

最佳答案

使用'|'允许多种模式:

[0-8][0-9][0-9]|9[02-9][0-9]|91[0-35-9]

例如:
>>> import re
>>> matcher = re.compile('[0-8][0-9][0-9]|9[02-9][0-9]|91[0-35-9]').match
>>> for i in range(1000):
...     if not matcher('%03i' % i):
...         print i
...
914

10-05 18:10