查找Java中正则表达式模式的所有匹配项-甚至重叠

user2233125:

我有一种String形式:

1,2,3,4,5,6,7,8,...

我正在尝试查找此字符串中所有包含4位数字的所有子字符串。为此,我有正则表达式[0-9],[0-9],[0-9],[0-9]不幸的是,当我尝试将正则表达式与我的String进行匹配时,我从未获得所有子字符串,而仅获得了所有可能子字符串的一部分。例如,在上面的示例中,我只会得到:

1,2,3,4

5,6,7,8

虽然我希望得到:

1,2,3,4

2,3,4,5

3,4,5,6

...

我将如何查找与我的正则表达式相对应的所有匹配项?


对于信息,我正在使用PatternMatcher查找匹配项:

Pattern pattern = Pattern.compile([0-9],[0-9],[0-9],[0-9]);
Matcher matcher = pattern.matcher(myString);
    
List<String> matches = new ArrayList<String>();
    
while (matcher.find())
{
  matches.add(matcher.group());
}
旧的预算案:

默认情况下,连续的调用Matcher.find()上一场比赛结尾开始

要从特定位置查找,find请将起始位置参数传递到前一个字符的开头之后的一个字符find

在您的情况下,可能类似于:

while (matcher.find(matcher.start()+1))

这工作正常:

Pattern p = Pattern.compile("[0-9],[0-9],[0-9],[0-9]");

public void test(String[] args) throws Exception {
    String test = "0,1,2,3,4,5,6,7,8,9";
    Matcher m = p.matcher(test);
    if(m.find()) {
        do {
            System.out.println(m.group());
        } while(m.find(m.start()+1));
    }
}

印刷

0、1、2、3

1,2,3,4

...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用正则表达式查找部分匹配项重叠的所有匹配项

Java正则表达式-重叠匹配

如何使用正则表达式查找重叠的匹配项?

Python正则表达式找到所有重叠的匹配项?

正向超前+重叠匹配正则表达式

使用正则表达式标记最短的重叠匹配

使用Python查找带有正则表达式的重叠序列

如何在字符串中搜索正则表达式模式的重叠匹配

查找重叠的正则表达式匹配项

重叠匹配的C ++正则表达式

正则表达式包括具有相同开始的重叠匹配

PCRE正则表达式重叠匹配

如何匹配重叠的Perl正则表达式?

前瞻正则表达式未能找到相同的重叠匹配项

如何在Matlab / Octave中使用正则表达式(正则表达式)来查找重叠的匹配项

正则表达式-返回重叠的匹配项

是否可以使用单个正则表达式找到重叠的匹配项?

正则表达式JavaScript重叠匹配

查找所有正则表达式匹配项

排除重叠匹配项的正则表达式

正则表达式匹配冲突与重叠符号

在 Python 中使用正则表达式查找重叠匹配项和子匹配项

找到重叠的正则表达式模式

与替换方法重叠的正则表达式匹配

如何使用正则表达式选择具有两个甚至更多条件组/匹配项的多行?

使用普通正则表达式查找重叠匹配项

Grep 正则表达式重叠匹配

使用 .NET 正则表达式提取嵌套匹配括号之间的所有重叠子字符串

由具有重叠问题的特定模式包围的序列的正则表达式