[英]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.