gpt4 book ai didi

java - 在 Java 正则表达式中获取多个模式的重叠匹配

转载 作者:行者123 更新时间:2023-11-30 03:36:57 24 4
gpt4 key购买 nike

我遇到了与 this link 相同的问题

但具有多种模式。我的正则表达式是这样的:

Pattern word = Pattern.compile("([\w]+ [\d]+)|([\d]+ suite)|([\w]+ road)");

如果我的示例文本是,

XYZ Road 123 Suite

我的愿望输出是,

XYZ Road 123

123 suite

但是我越来越

XYZ Road 123

仅。

提前致谢!

最佳答案

您可以尝试以下使用正向先行断言的正则表达式。

(?=(\b\w+ Road \d+\b)|(\b\d+ suite\b))

DEMO

String s = "XYZ Road 123 Suite";
Matcher m = Pattern.compile("(?i)(?=(\\b\\w+ Road \\d+\\b)|(\\b\\d+ suite))").matcher(s);
while(m.find())
{
if(m.group(1) != null) System.out.println(m.group(1));
if(m.group(2) != null) System.out.println(m.group(2));
}

输出:

XYZ Road 123
123 Suite

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com