2
我想完成什麼這個(無效我相信)的正則表達式試圖做的事:匹配任何東西,除了一個子模式
<p><a>([^(<\/a>)]+?)<\/a></p>uniquestring
基本上匹配除了關閉錨標記任何東西。簡單的非貪婪沒有幫助,因爲`uniquestring」很可能是另一個遙遠的結束錨標記後:
<p><a>text I don't <tag>want</tag> to match</a></p>random
data<p><a>text I do <tag>want to</tag> match</a></p>uniquestring more
matches <p><a>of <tag>text I do</tag> want to match</a></p>uniquestring
所以我得在錨標記之間更多的標籤。我使用uniquestring
的存在來確定我是否想要匹配數據。所以一個簡單的非貪婪最終會匹配從我不想要的數據開始到我想要的數據結束的所有事物。
我知道我越來越接近正則表達式的問題(或者至少我的知識)不善於解決。我只能通過HTML/XML解析器中的數據,但它只是一個簡單的(ish)搜索。
有沒有一些簡單的方法來做到這一點,我只是想念?
事實上,這就是我一直在尋找!我幾乎可以理解它。 :-) – 2010-03-11 19:26:20
我會使用* lookahead *,而不是後視。你的方式,它必須通過''序列,纔會意識到它不應該匹配它。 '(?!<\/a>)'在第一個字符停止匹配。 – 2010-03-11 23:56:33