2014-12-05 80 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

相關問題