以这种格式匹配一组字符串的最佳方法是什么:
也
对于第一场比赛,我写了一个像这样的正则表达式
[a-zA-Z]{3}\d{8}|([a-zA-Z]{2}\d{9}|[a-zA-Z]{2}\d{8})
这有效,但我不知道第二个。是否有符合这些格式的正则表达式?
答案 0 :(得分:0)
他们只是更相似:
([a-zA-Z]{2}\d{9}|([a-zA-Z]{2}\d{5}[a-zA-Z]\d{3}|[a-zA-Z-]{4}[a-zA-Z#]\d)
假设弹出'-'
的位置[a-zA-Z-]
是可以匹配的值组,同样[a-zA-Z#]
的{{1}}
答案 1 :(得分:0)
很难确切地说出你想要什么,但我把它们组合成两个正则表达式而不是4,因为它更快。我用过\ w或者。你使用[a-zA-Z]的地方,因为很难说出你想要的东西。提供更多信息,我将修改答案。
\w{2}\d{5}.\d{3}|.{4}\d{4}.?\d
答案 2 :(得分:0)
我会使用固定字符来表示规范是这样的情况:如果前3个字符是ABC后跟8个数字而不是widlcard字母,在这种情况下每个案例的模式如下:
AA99999999 2 fixed characters 8 numbers
AA\d{8}
AD999999999 2 fixed characters 9 numbers
AD\d{9}
ABC99999999 3 fixed characters 8 numbers
ABC\d{8}
also
BA999999999 2 fixed characters 9 numbers
BA\d{9}
BB99999x999 2 fixed characters 5 numbers 1 character 3 numbers
BB\d{5}x\d{3}
BHA-9999#9 4 fixed characters 4 numbers 1 fixed character 1 number
BHA-\d{4}#\d
BHGD99999 4 fixed characters 5 numbers
BHGD\d{5}
var patt1 = /^\w\w[\w\d]{1}[\d\w-]{1}\d{2}[\d\w]{1,4}[\d#]{1}\d+$/;
如果是这种情况,您需要将其中的每一个作为替代方案或进行一些逻辑匹配或迭代每个进行测试,直到找到匹配为止。
或者你的意思是大写字母而不是固定字符?
也许你可以玩这个小提琴。 https://jsfiddle.net/shotgundriver/r812c00v/6/
这是家庭作业问题还是现实世界?