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

时间:2015-11-20 10:16:40

标签: java regex

我想要捕获以下模式 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

4 个答案:

答案 0 :(得分:1)

尝试在所有比赛之间循环:

int[] values = { 1, 4, 6 };
if(values.Contains(a.b))
    a.b = 8;

答案 1 :(得分:0)

这样的事情:

[A-Z]\d+

期望零件为A-Z,后跟数字。

答案 2 :(得分:0)

不需要方括号在你的模式中。

试试这样:

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

答案 3 :(得分:-1)

试试这个

WER-RTN