2017-06-13 21 views
1

我目前正在編寫一個正則表達式來使用visual studio正則表達式搜索文件,im工作的模式是這樣正則表達式搜索從字符串1開始的字符串,不包含字符串2,並以字符串3結尾

  1. 開始於串1
  2. 犯規包含字符串2中的字符串1和3
  3. 之間與字符串結尾3

林修改先前的正則表達式,我前一段時間(2年?)使用,但不能提出符合需要的東西。這是目前正在嘗試工作。

\bword1\W+(?:\w+\W+)*^((?!word2).)*$word3\b 

任何人都可以教我關於正則表達式的一兩件事嗎?

謝謝

+0

如果字符串3包含在其中的字符串2,是允許還是不允許? –

+0

是否必須是正則表達式?不要認爲regexp是實現你想要的。 –

+0

對於#2,你是指字符串1和** 3 **之間的意思嗎? –

回答

2

看:

  • 開始用繩子1 - string1
  • 不包含字符串2中字符串1和3之間 - 在這裏,你需要使用一個. tempered with a negative lookahead - (?:(?!string1|string2).)*?(注意,要匹配跨線,在Visual Studio S & R您需要使用[\s\S\r]代替.\r是必要這裏的原因[\s\S]不匹配VS小號&ř正則表達式換行符))
  • 與串3結束 - string3

所以,整個表達式是

string1(?:(?!string1|string2).)*?string3 

regex demo

+1

omg !!!!有效!非常感謝,我已經upvoted您的文章 – user1465073

+1

謝謝,剛剛 – user1465073

相關問題