仅选择内部嵌套文本
Selecting Inner nested text only
我正在使用 REGEX 来 select 自定义标签,但是其中一些标签具有同名的内部标签。我只想 select 内部标签,所以我可以先处理它们。
我的 REGEX 搞混了。我认为这可能需要递归 select,但我不确定如何做。
\[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]
Select 另一个 运行 或相同 运行 中的标签?
您可以使用这个使用否定前瞻的正则表达式来断言我们在结束 [/STORE]
:
之前没有得到另一个 [STORE ...]
\[STORE [^\]]*\](?:(?!\[STORE [^\]]*\])[\s\S])*?\[\/STORE\]
这将匹配最里面的 STORE
标签或父级别独立的 STORE
标签。
我为您提供了 Java脚本语法。如果您使用的是 Java (Salesforce apax),那么您可以使用:
String = regex = "\[STORE [^]]*\](?:(?!\[STORE [^]]*\]).)*?\[/STORE\]";
final Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
我正在使用 REGEX 来 select 自定义标签,但是其中一些标签具有同名的内部标签。我只想 select 内部标签,所以我可以先处理它们。
我的 REGEX 搞混了。我认为这可能需要递归 select,但我不确定如何做。
\[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]
Select 另一个 运行 或相同 运行 中的标签?
您可以使用这个使用否定前瞻的正则表达式来断言我们在结束 [/STORE]
:
[STORE ...]
\[STORE [^\]]*\](?:(?!\[STORE [^\]]*\])[\s\S])*?\[\/STORE\]
这将匹配最里面的 STORE
标签或父级别独立的 STORE
标签。
我为您提供了 Java脚本语法。如果您使用的是 Java (Salesforce apax),那么您可以使用:
String = regex = "\[STORE [^]]*\](?:(?!\[STORE [^]]*\]).)*?\[/STORE\]";
final Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);