这里有很多很棒的正则表达式答案,但我找不到任何对我有用的东西。情况如下:
我有一大堆数字。假设它只是一个从1到100的数字列表,我只想使用包含10,20和50的列表。但代码的构建方式(并且无法更改!)将被忽略正则表达式不接受。所以,我不能只说^10$|^20$|^50$
而是我不需要他们然后和他们。
我试过这个:
(?!^10$)(?!^20$)(?!^50$)
没有运气,似乎找不到任何有效的地方。
有什么想法?非常感谢!
P.S。我刚刚做了这个特殊的例子来展示我在做什么,我不会使用正则表达式这是我遇到的实际问题....: - )
答案 0 :(得分:1)
如果我理解你的问题,你需要的是这样的:
(?!^10$)(?!^20$)(?!^50$)^.*$
如果该行的内容与"10"
,"20"
或"50"
不同,则会匹配。
但是,这似乎是处理问题的一种相当麻烦的方式。这条线上的更多东西不会更好吗?
import re
pattern = re.compile(r"^(?:10|20|50)$")
for text in list_of_texts:
m = pattern.match(text)
if m is not None:
print "Found something interesting (not 10, nor 20 nor 50): %s" % text