[英]regex capturing groups fails to capture multiple groups
我要捕获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));
}
像这样:
[A-Z]\d+
期望零件为AZ,后跟数字。
无需方括号即可使用。
尝试这样:
((G|I|R|F)[0-9]{1,4}-?){1,}
尝试这个
([G|I|R|F])([0-9]{1,4})/g
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.