簡體   English   中英

匹配嵌套方括號標記的正則表達式是什么?

[英]What is the regular expression to match nested square bracket tags?

我創建了一個與方括號,Wiki類型的標簽相匹配的正則表達式模式,如下所示:

[h1]Some content[/h1]
[b]some more content[/b]
[i]some more still[/i]

這是一個場景:

This [b]sentence[/b] is just an [b][i]example[/i][/b].

這是模式:

\[\w{1,2}\](.*?)\[\/\w{1,2}]

問題是,有時標簽會嵌套。 例如:

[b][i]nested tags content[/i][/b]

嵌套不會比這更復雜。 可以預期,該模式返回:

[b][i]nested tags content[/i]

我應該在模式中進行什么修改,或者為匹配以捕獲整個嵌套集使用其他什么模式?

正則表達式不能很好地適應您設置的條件。 尤其是當您同時具有嵌套表達式和每個字符串多次出現時,正則表達式很難解析。

這樣做可能會很繁重,但是像ANTLR這樣的解析器更適合於此。 如果有能力,您可以編寫自己的簡單字符串解析器。

只需刪除問號並獲得第一組即可。 *? 量詞 -匹配次數盡可能少,根據需要擴展。但是您需要的是默認行為盡可能多的次數。 \\[\\w{1,2}\\](.*)\\[\\/\\w{1,2}]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM