gpt4 book ai didi

java - 分开两场比赛

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:11:55 25 4
gpt4 key购买 nike

正则问题:想分两次群,不知道怎么解决。

代码如下:

public static void multiGroupTest() {
// Pattern p = Pattern.compile("(\\w+)(\\d\\d)(\\w+)");
Pattern p = Pattern.compile("([A-Z]{1})(\\d+)([A-Za-z]+)");
String str = "X89SuperJavaJavaX89SuperJava";
Matcher m = p.matcher(str);
while (m.find()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
System.out.println(m.group(3));
}
}

好的,结果是:

X
89
SuperJavaJavaX

我想得到的是:

X
89
SuperJavaJava
X
89
SuperJava

如何区分这两个匹配项?

最佳答案

更改您的 Pattern 以添加对数字的否定预测:

Pattern p = Pattern.compile("([A-Z]{1})(\\d+)([A-Za-z]+)(?!\\d)");
String str = "X89SuperJavaJavaX89SuperJava";

输出

X
89
SuperJavaJava
X
89
SuperJava

关于java - 分开两场比赛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26738194/

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