2014-12-05 46 views
2

我知道用一个简单的负回顾后找到所有的字符串没有被另一个之间的记事本+

#(?<!first word)\r\nsecond word#s 

preceeded,与任何这不会在

some text 
first word 
second word 
some text 

找到second word和匹配的预期

some text 
second word 
some text 

它也匹配在这里,但它不应该

some text 
first word 
any other text 
second word 
some text 

如何修改我的正则表达式以满足要求?我试过#(?<!first word).*second word#s,但它总是匹配。

我需要这通过许多文件在记事本中搜索++

+0

你在用什么语言? – Jerry 2014-12-05 11:06:35

+0

你的第一个正则表达式正在工作https://regex101.com/r/qU7nN0/3。看,它无法在第三个块中匹配。 – 2014-12-05 11:08:03

+0

@Jerry它用于记事本++,在文件夹中的许多文件中进行搜索。 – 2014-12-05 11:11:45

回答

0

你的第一个正则表达式匹配的是第三个例子,就好像它是寻找一个字符串,它是不是first word并且具有second word作为下一个字符串。

最后一个正则表达式匹配所有内容,因为.*匹配所有内容。

我建议在负面看后面添加.*

我不知道你正在使用哪个编辑器,所以如果它不符合你的regexp语法,请更正它。

我会搜索尚未first word要由second word这样

^(?!.*first word.*)\r\nsecond word

我希望它会工作进展的最大长字符串。

祝你好运!

+1

不,这个正则表达式需要以'\ r \ nsecond word'开头。因此它不符合我的任何案例。当我省略'^'时,它不是它应该的。 – 2014-12-05 12:38:40

+0

@LorenzMeyer真的是一个非常有趣的问题......我已经看到,这是记事本++,我认为这是使任务更复杂。你知道如何提起文件?我无法找到这样的东西......如果有可能标志着一个失败的开始,那么解决方案是显而易见的......否则它只会匹配文件的一部分...... – Anna 2014-12-05 14:47:30

相关问题