gpt4 book ai didi

java - 如何修复此正则表达式?

转载 作者:行者123 更新时间:2023-11-29 08:04:33 25 4
gpt4 key购买 nike

(W[AY]|C[AO])(\\s+\\d{5})

因此,这当前解析以 W 或 C 开头后跟邮政编码的州。但是,它将所有这些作为一个组返回,如示例 WA 98121 CA 56679 将返回第 1 组是 WA 98121,第 2 组是 CA 56679。

如何修复此问题以在 group1 WA group2 98121 group3 CA group4 56679 中检索

最佳答案

通常,您希望在一次匹配中捕获搜索“短语”的所有部分,并通过使用组来分解短语的各个部分,处理匹配然后再次匹配下一个短语。因此,我将通过向您展示如何使用这种方法进行编码来回避您的问题。

下面是一些可运行的代码,演示了如何正确匹配和使用组:

// Regex to match a "state zip" sequence, and capture each part in its own group
String regex = "(W[AY]|C[AO])\\s+(\\d{5})";

// Some sample input
String input = "blah blah WA 98121 blah blah CA 56679 blah blah";

Matcher matcher = Pattern.compile(regex).getMatcher(input);
while (matcher.find()) { // move to next match, if one exists
String state = matcher.group(1);
String zip = matcher.group(2);
// Work with state and zip values
System.out.println("State = " + state + ", zip = " + zip);
}

输出:

State = WA, zip = 98121
State = CA, zip = 56679


请注意,捕获的正则表达式组从 1 开始编号。
仅供引用,0 组是整个匹配项。

关于java - 如何修复此正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12134881/

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