选择具有相同父标记名称的内部自定义标记

时间:2016-10-06 13:20:01

标签: regex

我使用正则表达式来选择自定义标签,但是其中一些标签具有相同名称的内部标签。

我的正则表达式正在变得混乱。

\[STORE.*?\]((.*?|\n)*)\[\/STORE\]

文字:

[STORE SMC, DODO]blah blah blah blah blah
    [STORE SMC]blah[/STORE]
    [STORE DODO]Blah[/STORE].
[/STORE]

  ...some text here I do not want selected...

[STORE SMC]blah[/STORE]

在另一次运行或同一次运行中选择标签?

1 个答案:

答案 0 :(得分:2)

试试这个:

\[STORE[^\]]*]((.?|\n)*)\[\/STORE\]

应按预期工作:https://regex101.com/r/rkVKce/1

如果你想获得内部标签,你必须递归地应用这个正则表达式。我认为匹配这对于纯正则表达式来说太过分了。