我试图提取`[:: ['和'] ::]'之间的值。我遇到的问题是在同一个字符串中有多个这样的实例,它只是拿起第一个。我的正则表达式的任何帮助?这是我的代码:
示例输入:line = "TEST [::[NAME]::] HERE IS SOMETHING [::[DATE]::] WITH SOME MORE [::[Last]::]";
Pattern p = Pattern.compile("\\[::\\[(.*?)\\]::\\]");
Matcher m = p.matcher(line);
if (m.find()) {
System.out.println(m.group(1));
}
答案 0 :(得分:6)
你的正则表达式没问题。你需要做的是循环比赛,Matcher
可以匹配几次!
while (m.find())
System.out.println(m.group(1));
Matcher
会在最后一场比赛结束时再试一次(除非您使用\G
,但这非常特别)