在REGEX中使用条件组

时间:2012-11-29 18:28:52

标签: regex

我正在尝试匹配模式,但我无法修复我的REGEX以便正常工作。

我有文字:

REG1QA

我的正则表达式如下:

([A-Z]{3})+([1-3]{1})+([A-Z]{1})+((A|B|C)|(D|E|F)|(G|H|I))

规则是: 如果我的第四个特征是1,我的最后一个特征必须是A,B或C. 如果我的第四个特征是2,我的最后一个特征必须是D,E或F. 如果我的第四个特征是3,我的最后一个特征必须是G,H或我

如何修复我的REGEX以接受此规则?

TKS

3 个答案:

答案 0 :(得分:1)

在此尝试:

^[A-Z]{3}(1[A-Z]*[ABC]|2[A-Z]*[DEF]|3[A-Z]*[GHI])$

我不确定char 5是否也可以成为A-Z,但在我的例子中也是如此。所以你有一个共同的开头,1-3的交换机及其规则。

答案 1 :(得分:1)

使用正则表达式^.{3}(?:1.*[A-C]|2.*[D-F]|3.*[G-I])$

答案 2 :(得分:0)

[A-Z]{3}((1.*?[A-C]$)|(2.*?[D-F]$)|(3.*?[G-I]$))