带有可选字符的5位数的正则表达式

时间:2013-09-29 15:37:45

标签: regex

我正在尝试创建一个正则表达式来验证一个字段,用户可以输入一个5位数字,并可以选择添加/后跟3个字母。我尝试了以下代码的一些变体:

^(\d{5})+?([/]+[A-Z]{1,3})? 

但我似乎无法得到我想要的东西。

例如,我希望用户输入一个5位数字,例如12345,可以选择添加正斜杠,然后添加任意3个字母,例如12345/WFE

4 个答案:

答案 0 :(得分:8)

你可能想要:

^\d{5}(?:/[A-Z]{3})?$

根据你的正则表达风格,你可能不得不逃避正斜杠。

说明:

  • ^ - 字符串锚的开始
  • \d{5} - 5位数
  • (?:/[A-Z]{3}) - 由文字/后跟3个大写字母组成的非捕获组(根据您的需要,您可以考虑通过删除?:将其设为capturing group })。
  • ? - 前面的0或1(在这种情况下是直接在上面的非捕获组)。
  • $ - 字符串锚点结束

总而言之,正则表达式看起来像这样:

enter image description here

答案 1 :(得分:2)

您可以使用此正则表达式

/^\d{5}(?:\/[a-zA-Z]{3})?$/

答案 2 :(得分:2)

^\d{5}(?:/[A-Z]{3})?$

这是实践中(这是一个测试你的正则表达式的好网站): http://regexr.com?36h9m

答案 3 :(得分:2)

^(\d{5})(\/[A-Z]{3})?

rubular

中测试过