Har*_*arg 2 java regex regex-lookarounds
Java 之间{{和之间的Regex搜索关键字是什么?}}
String = "kksdkjhsd {{one}} sdkjhsdjksd {{two}}"
我想要的例子output = ["one","two"];
我已经尝试过在Java Regex中建议的方法来获取大括号之间的数据.
单支撑可以正常工作,但我不能将它扩展为双花({{ }})括号
此代码应符合您的要求:
Matcher m = Pattern.compile("\\{\\{([^\\}]*)\\}\\}").matcher(word);
while (m.find()){
System.out.println(m.group(1));
}
Run Code Online (Sandbox Code Playgroud)
此正则表达式获取{{ }}其中不是}字符的所有文本.此正则表达式不处理大小写限制{{{}}},在这种情况下返回,{ 因为只有前两个{{匹配.
如果您需要一个与范围内的单个花括号匹配的正则表达式,我们需要一个更复杂的解决方案.
另一件事,使用字符类([^\\}]*)使正则表达式更有效(.*?),因为它将停止搜索第一个字符,而不是一个封闭的大括号.