我试图找出只接受以下字符串的正则表达式.
-
7号和8号:"1234567"和"12345678"
-
以T开头的7和8个数字:"T234567"和"T2345678"
-
7和8个以D开头的数字:"D234567"和"D2345678"
-
7和8个以TD开头的数字:"TD34567"和"TD345678"
我的正则表达式是:
/^(T|[0-9]){1}(D|[0-9]){1}([0-9]){5,6}$/
但它没有通过我对"D234567"和"D2345678"的单元测试
我试图找出只接受以下字符串的正则表达式.
7号和8号:"1234567"和"12345678"
以T开头的7和8个数字:"T234567"和"T2345678"
7和8个以D开头的数字:"D234567"和"D2345678"
7和8个以TD开头的数字:"TD34567"和"TD345678"
我的正则表达式是:
/^(T|[0-9]){1}(D|[0-9]){1}([0-9]){5,6}$/
但它没有通过我对"D234567"和"D2345678"的单元测试
你可以把模式写成:
^(?:\d{7,8}|[TD]\d{6,7}|TD\d{5,6})$
Explanation
^
开始串(?:
Non capture group for the alternatives
\d{7,8}
匹配7-8个数字|
或[TD]\d{6,7}
匹配T
或D
以及6-7位数|
或TD\d{5,6}
匹配TD
和5-6位数)
关闭非捕获组$
弦的末端