2011-10-20 89 views
0

我想匹配維基媒體文件的標記,我在以下情況下滿足:如何匹配嵌套的regex

[[ref1]] text [[Datei:Panorama2München.JPG der [[Frauenkirche (München)|Frauenkirche]] aus in Blickrichtung Südosten]] text [[ref2]]. 

我想匹配

[[Datei:Panorama2München.JPG der [[Frauenkirche (München)|Frauenkirche]] aus in Blickrichtung Südosten]] 
+0

我不認爲正則表達式是最好的解決方案。由於存在嚴格的語法,詞法分析器通常是更好的處理這種結構的方法。正則表達式對於處理像這樣的嵌套尤其糟糕。 – Thor84no

回答

1

這取決於哪些部分是恆定的?所有你想匹配的字符串都是以「[[Datie]」開始並在括號中有確切的數字?如果是這樣,你可以試試[[Datei.*[[.*]].*]]。如果其中的一個「文本」後的嘗試text [[.*[[.*]].*]]
但請注意,如果您不知道括號的數量,那麼它可能會非常棘手,但您需要對它們進行一些假設,因爲不可能使正則表達式匹配未知數量的括號。 (爲此,您將需要一個堆棧 - 由您管理。)