使用正则表达式从字符串中提取长度大于2的任何数字,但也要排除“2016”,这是我所拥有的:
import re
string = "Employee ID DF856, Year 2016, Department Finance, Team 2, Location 112 "
print re.findall(r'\d{3,}', string)
输出:
['856', '2016', '112']
我试图将其更改为以下内容,以排除“2016”,但所有尝试都失败了。
print re.findall(r'\d{3,}/^(!2016)/', string)
print re.findall(r"\d{3,}/?!2016/", string)
print re.findall(r"\d{3,}!'2016'", string)
什么是正确的方法?谢谢。
问题已经扩展,请查看Wiktor Stribiżew最后发表的评论进行更新。
(?:\D|^)(?!2016\b)(\d{3,})
。另外,关于回顾后发版本,请注意它匹配类似于102016
的内容。 - bobble bubble