java - 正则表达式的多重匹配?

标签 java python regex

文本:“aaaa”

模式:“aa”

然后将有两个匹配:aa(0,1), aa(2,3)

如果我想要三个匹配:aa(0,1)、aa(1,2)、aa(2,3)。 (我相信这是一个经典问题,我不知道如何描述它:'( )

我怎样才能用java或python或其他语言做到这一点?

最佳答案

请在此处查看此代码:

String str = "aaaa";
Pattern p1= Pattern.compile("(aa)");
Matcher matcher = p.matcher(str);
int start = -1;
while(matcher.find(start + 1)) {
    start = matcher.start(0);
    System.out.println("Found: " + start);
}

它输出:

Found: 0
Found: 1
Found: 2

这基本上就是如何在 java 中操作从何处搜索下一个匹配项。希望这会对您有所帮助。

关于java - 正则表达式的多重匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9850170/

相关文章:

java - 在静态 block 与上下文参数中设置属性文件值

java - 如何在java中重置数据库表中的id?

java - 如何在单独的 lucene 索引文件之间加入

python - Python 的 Matplotlib 模块的奇怪行为 - 绘制圆

Java:正则表达式替换字符串

java - 无法访问大型机类类型的封闭实例

python - 损坏的 pip 安装仅适用于 sudo

python - 如何在Python中将字符串添加到字典的Key中?

regex - 正则表达式不匹配新行

python - 递归解析/转换结构化文本到字典