我需要regexp来匹配来自多个组的字符串构建(A是任何字母,9是任何数字):
组1正则表达式[A-Z] {1,2} [0-9]?
A
A9
AA9
第2组正则表达式[A-Z] {1,3} [0-9]?
A
AA
AAA
AAA9
第3组正则表达式[A-Z] {2,3} [0-9]?[A-Z]?
AAA
AA9
AA9A
第4组正则表达式[0-9] {1,2} [A-Z] {1,2} [0-9]?
9A
9AA
9A9
99A9
不是每个组都必须在场,但必须按正确顺序排列 - 我的意思是(数字是组号):
1
12
123
1234
因此,如果存在第3组,那么我前面的所有组都必须出现。
因为有四个组(可以更多),所以替代如
^[A-Z]{1,2}[0-9]{1}|[A-Z]{1,2}[0-9]{1}\s{1}[A-Z]{1}[0-9]?$
不是最佳选择,因为它很复杂且难以维护。 是否有团体或其他什么解决方案? 小组的顺序很重要。
答案 0 :(得分:1)
此正则表达式将匹配您提供的所有字符串:
^[A-Z]+[0-9]*(\s+[A-Z]+[0-9]*)+$
和无限的话。
答案 1 :(得分:0)
怎么样:
^[A-Z]{1,2}[0-9]?(?:\s+[A-Z]{1,3}[0-9]?(?:\s+[A-Z]{2,3}[0-9]?[A-Z]?(?:\s+[0-9]{1,2}[A-Z]{1,2}[0-9]?)?)?)?$