匹配不包含特定文本的行与正则表达式

时间:2009-01-12 20:17:08

标签: regex pattern-matching

我想用正则表达式执行以下操作但不确定如何执行此操作。我希望当one two是行的开头时匹配one two,除非字符串在three之后的任何位置包含one two

2 个答案:

答案 0 :(得分:14)

你需要一个negative lookahead assertion - 类似这样的东西:

/^one two(?!.*three)/m

这是a tutorial on lookahead/lookbehind assertions

注意:我添加了'm'修饰符,以便^匹配行的开头而不是整个字符串的开头。

答案 1 :(得分:4)

^one two(?!.*three)