2010-04-19 30 views
4
"([\"'])(?:\\\\?+.)*?\\1" 

我想出了這個正則表達式匹配所有引用的字符串.. 它似乎工作的偉大... 的問題是如何在內部心不是引號中的文本相匹配。 。 逆陰性莫名其妙......正則表達式文本之外引號等

我閱讀文檔和

(?!(([\"'])(?:\\\\?+.)*?\\1)) 

不工作

+1

當你有一個包含帶撇號的單詞的字符串時,這是如何工作的? – CaffGeek 2010-04-19 13:37:35

+1

你的意思是? '? 它的作用是因爲反向參考\\ 1 – GorillaApe 2010-04-19 13:39:45

+0

這也假定均衡的引號。它會在零碎的情況下失敗,這對你來說可能不是問題,但值得考慮完整性。 – Robusto 2010-04-19 13:39:57

回答

6

Hmm如果第一個常規experssion起作用,我會用它從輸入字符串中刪除所有引用的字符串。然後,您將留下的所有內容都是引用字符串之外的文本。對於某些類型的模式,我發現這種方法更容易和更簡單。

+2

另外,你可以通過第一個正則表達式「拆分」,並保留正確的標記。 – Kobi 2010-04-19 13:52:47

相關問題