gpt4 book ai didi

java - 正则表达式捕获组无法捕获多个组

转载 作者:太空宇宙 更新时间:2023-11-04 13:12:31 24 4
gpt4 key购买 nike

我想要捕获以下模式G01或G01-I006或G01-I006-I1或G01-I006-I1-R06或G01-I006-I1-R06-F001

如果输入是 G01-I006-I1-R06-F001,我想要一个捕获组捕获 G 01、I 006、I 1、R 06 和 F 001

我想出了这个模式:

(([G|I|R|F])[0-9]{1,4}-?){1,}

但是对于 G01-I006-I1-R06-F001,捕获组仅包含 F001

最佳答案

尝试在所有匹配之间循环:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

String input = "G01 G01-I006 G01-I006-I1 G01-I006-I1-R06 G01-I006-I1-R06-F001";

final Pattern pattern = Pattern.compile("([GIRF])([0-9]{1,4})-?");
Matcher m = pattern.matcher(input);
while(m.find()) {
System.out.println(m.group(1) + " " + m.group(2));
}

关于java - 正则表达式捕获组无法捕获多个组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33824132/

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