我创建了一个正方形表达式模式,它匹配方括号,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]
我应该在模式中进行哪些修改,或者我应该使用什么其他模式来匹配以捕获整个嵌套集?
答案 0 :(得分:2)
正则表达式与您设置的条件不相符。特别是当你有两个嵌套表达式并且每个字符串多次出现时,正则表达式很难解析。
走这条路可能会很沉重,但像ANTLR这样的解析器更适合这种情况。如果你有能力,你可以编写自己的简单字符串解析器。
答案 1 :(得分:0)
只需删除问号并获得第一组即可。的 *?量词 - 匹配尽可能少的次数,根据需要进行扩展。但你需要的是尽可能多的默认动作。
\[\w{1,2}\](.*)\[\/\w{1,2}]