我正在尝试在 Java 上编写一个 Regex
来提取双花括号之间的元素
示例:
I am very much new to java...{{envelope|func"{{aa}}{{ds}}|{{abc.xyz}}"}} and i want to know.... more.
我试过这个正则表达式,但它没有返回完整的第一个元素
{\{(.*?)(?:\{\{(.*?)\}\})*\}\}
我想提取如下:
- 信封|func"{{aa}}{{ds}}|{{abc.xyz}}"
- aa
- ds
- abc.xyz
最佳答案
将我的评论转换为答案。这是假设在 {{
和 }}
之间我们有所有非空白字符。
此正则表达式基于前瞻和前瞻内的交替。捕获的组是前瞻本身的一部分。
\{\{(?=((?:(?!\{\{|}})\S)*+|\S*)}})
或者在 Java 中:
final String regex = "\\{\\{(?=((?:(?!\\{\\{|\\}})\\S)*+|\\S*)\\}})";
关于java - 如何提取多个花括号之间的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43042554/