如何匹配除一个特定整数(例如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