请正确使用正则表达式

时间:2017-03-16 03:32:10

标签: regex

我想在文本框中找到“[[Fichier ....]]”中的文字:

=== Langues ===
{{Article détaillé|Langues en Afrique du Sud}}
[[Fichier:South Africa dominant language map.svg|thumb|300px| Répartition 
des langues officielles dominantes par région :
{{clear}}
{{legend|#80b1d3|[[Zoulou]]}}
{{legend|#8dd3c7|[[Afrikaans]]}}
{{legend|#fb8072|[[Xhosa (langue)|Xhosa]]}}
{{legend|#ffffb3|[[Anglais]]}}
{{legend|#fccde5|[[Tswana|Setswana]]}}
{{legend|#bebada|[[Ndébélés|Ndebele]]}}
{{legend|#fdb462|[[Sotho du Nord]]}}
{{legend|#b3de69|[[Sotho du Sud]]}}
{{legend|#bc80bd|[[Swati]]}}
{{legend|#ccebc5|[[Venda (langue)|Tshivenda]]}}
{{legend|#ffed6f|[[Tsonga (langue)|Xitsonga]]}}
{{legend|#d0d0d0|Pas de langage dominant}}]]
Il n'y a pas de langue maternelle majoritairement dominante en Afrique du     Sud. Depuis [[1994]], [[Langues en Afrique du Sud|onze langues officielles]]     (anglais, afrikaans, zoulou, xhosa, zwazi, ndebele, sesotho, sepedi, setswana,     xitsonga, tshivenda<ref>[http://www.lafriquedusud.com/ethnies.htm         lafriquedusud.com]</ref>) sont reconnues par la [[Constitution de l'Afrique du     Sud|Constitution sud-africaine]]<ref>{{Ouvrage|langue=fr|auteur1=François-    Xavier Fauvelle-Aymar|titre=Histoire 

如何改进以下正则表达式:

\[\[Fichier:.*(.*\[\[.*\]\].*)*.*\]\]

为了匹配所有的liness,直到正确的]]

2 个答案:

答案 0 :(得分:-1)

\[\[Fichier:(.*?(\n))+.*\]\]

匹配[[]]之间的所有行。

这是最好的沙箱:http://www.regexr.com

答案 1 :(得分:-2)

如果您拥有最多一层嵌套[[...]](正如您的测试数据样本所示),则内部正则表达式模式可以包含双括号中的字符串序列(\[\[.*?\]\])或除了结束括号([^]])之外的任何东西:

\[\[Fichier:(?:\[\[.*?\]\]|[^]])*\]\]

演示:https://regex101.com/r/Q7zQQt/1

对于任意数量的嵌套级别,答案取决于正则表达式的味道。您可以在此处找到有关此内容的更多详细信息:http://www.regular-expressions.info/balancing.html