Java 如何匹配嵌套正则表达式

Java 如何匹配嵌套正则表达式,java,regex,Java,Regex,我正在尝试匹配在以下情况下遇到的WikiMedia文件标记: [[ref1]]text[[Datei:Panorama2München.JPG der[[Frauenkirche(Munchen)| Frauenkirche]]aus in Blickrichtung Südosten]]text[[ref2]]。 我想比赛 [[Datei:Panorama2München.JPG der[[Frauenkirche(Munchen)| Frauenkirche]]aus in Blickr

我正在尝试匹配在以下情况下遇到的WikiMedia文件标记:

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

我想比赛

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

这取决于哪些部分是常数?是否所有要匹配的字符串都以“[[Datie]”开头,并且括号中有确切的数字?如果是这样,您可以尝试此
[[Datei.[[.]].].]
。如果是“text”之后的字符串,请尝试
文本[.[.[.].].].]


但是请注意,如果您不知道括号的数量,那么这可能会很棘手,但是您需要对它们进行一些假设,因为不可能生成一个与未知数量的括号匹配的正则表达式。(为此,您需要一个由您管理的堆栈。)

我不认为正则表达式是最好的解决方案。由于有严格的语法,lexer通常是处理此类结构的更好方法。正则表达式在处理此类嵌套方面尤其糟糕。