正则表达式找到A而不是B在一条线上

Zac*_*ach 5 python regex textmate

我正在寻找一个正则表达式来搜索我的python程序,找到所有行foo,但不是bar,作为关键字参数传递给方法.我正在玩前瞻和后瞻性的断言,但没有太多运气.

有帮助吗?

谢谢

Mar*_*ers 10

如果您foo要查找的字符串和另一个bar不能出现的字符串,您可以使用:

^(?!.*bar).*foo
Run Code Online (Sandbox Code Playgroud)

创建一个完全符合您所有要求的正则表达式是非常困难的,因为Python代码不是常规语言,但希望您能够以此为出发点来获得足够满足您需求的内容.


mač*_*ček 5

在这些场景中进行^ 瞻似乎总是对我更有效。阅读它对我来说也更有意义。

(?!.*bar)^.*foo

this has a foo          # pass
so does this has a foo  # pass
i can haz foo           # pass
but i haz foo and bar!  # fail
Run Code Online (Sandbox Code Playgroud)