正则表达负面向前看

时间:2012-09-13 23:13:30

标签: regex

对RE不太熟悉。我有以下字符串

"The cat jump The cat ran The cat eat The dog jump The dog ran The dog eat".  

我想要

"The cat ran" and "The dog ran".  

我认为这个RE使用负向前看应该有效

"The(?!.*The).*jump" 

但事实并非如此。缺少什么?

请帮忙。

2 个答案:

答案 0 :(得分:1)

以下是否适合您?

The \w* ran

答案 1 :(得分:1)

似乎您希望表达式与不包含The的子字符串匹配。 这可以通过表达式中的(?:(?!The).)*构造来完成:

The(?:(?!The).)*jump

请注意,在这种情况下,使用惰性(.*?)量词就足够了,例如:

The.*?jump

也许这也适用于你原来的问题。