我使用类似 (J|N){1}N
的模式匹配类似 JNN
的文本。
使用这种模式我只能得到 JN
在文字中。不过我想同时获得 JN
和NN
如何获取所有满足模式的子字符串?
如果文本类似于 JNNNN...
有没有一种方便的方法来获取所有匹配的字符串?
最佳答案
使用正向前瞻捕获重叠匹配。
(?=([JN]N))
示例:
String s = "JNNNNJNN";
Pattern p = Pattern.compile("(?=([JN]N))");
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group(1));
}
输出
JN
NN
NN
NN
JN
NN
关于java - 如何使用正则表达式来匹配文本中所有满足的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25531215/