带有结束alpha的正则表达式是可选的

时间:2014-08-13 16:47:49

标签: regex

我对正则表达式很新,并试图解决这个问题。

我正在尝试验证字符串:

  1. 从这些abcdjklmnpqrstwz
  2. 中的任何一个开始
  3. 后跟1或2 alpha
  4. 接着是1到4个整数
  5. 可选:使用单个alpha结尾
  6. 这是我的正则表达式  /(^[abcdjklmnpqrstwz](:?[a-z]{1,2})) [0-9]{1,4} *([a-z]{1})/i

    这里有一些字符串样本应该是真的

    bab 1234 a
    
    bab 1234
    
    bab 123
    
    b 123 a
    

    click here to test

2 个答案:

答案 0 :(得分:1)

您应该使用?代替{1}demo):

/(^[abcdjklmnpqrstwz](:?[a-z]{1,2})) [0-9]{1,4} ([a-z]?)/i

?指定前一个块是可选的。

答案 1 :(得分:1)

请参阅以下正则表达式:

/^[a-dj-np-twz](?:[a-z]{1,2})?\s[0-9]{1,4}(?:\s[a-z])?$/

这是regex demo