几个相似的字符串格式的Regex匹配

Regex match for several similar string formats

本文关键字:字符串 格式 Regex 匹配 相似 几个      更新时间:2023-09-26

在这种格式下匹配一组字符串的最佳方法是什么:

  • AA99999999 2个固定字符8个数字
  • ABC99999999 3个固定字符8个数字
  • AD999999999 2个固定字符9个数字

  • BA999999999 2个固定字符9个数字
  • BB99999x999 2个固定字符5个数字1个字符3个数字
  • BHA-9999#9 4固定字符4数字1固定字符1数字
  • BHGD99999 4个固定字符5个数字

对于第一个匹配,我写了一个这样的正则表达式

[a-zA-Z]{3}'d{8}|([a-zA-Z]{2}'d{9}|[a-zA-Z]{2}'d{8})

这个工作,但我不知道第二个。是否有匹配这些格式的正则表达式?

很难确切地说出您在这里想要什么,但是我已经将它们组合成两个正则表达式,而不是使用4,因为它更快。我用过w或者。你用了[a-zA-Z],因为,再说一遍,很难说你想要什么。提供更多的信息,我将修改答案。

'w{2}'d{5}.'d{3}|.{4}'d{4}.?'d

他们只是更多的相同:

([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#]对于'#'也是如此

我认为固定字符是指规范有一种情况,如果前3个字符是ABC,后面跟着8个数字,而不是通配符字母,在这种情况下,每种情况的模式如下:

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/

这是作业问题还是现实世界?