2011-10-20 90 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 [[.*[[.*]].*]]
但请注意,如果您不知道括号的数量,那么它可能会非常棘手,但您需要对它们进行一些假设,因为不可能使正则表达式匹配未知数量的括号。 (为此,您将需要一个堆栈 - 由您管理。)