正则表达式patten cutom实现

时间:2017-09-12 17:11:41

标签: regex

10001.000.01.01-A-AB - 我需要以下列格式编写正则表达式。这是照顾,直到数字十进制需要添加字符

/^\d{4,6}(\.\d{3})(\.\d{2}(\.\d{2})?(\.\d{2})?)?$/ 

0001.000-A
0001.000.01-A
0001.000.01.01-A
0001.000.01.01-A-AB
10001.000.01.01-A-AB

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

好像你可以使用

^\d{4,6}\.\d{3}(?:\.\d{2}(?:\.\d{2})?(?:\.\d{2})?)?(?:-[A-Z]+(?:-[A-Z]+)?)?$

请参阅regex demo

<强>详情

  • ^ - 字符串开头
  • \d{4,6} - 4到6位
  • \.\d{3} - .和3位
  • (?:\.\d{2}(?:\.\d{2})?(?:\.\d{2})?)? - 可选的组匹配
    • \.\d{2} - 一个点和2位数字
    • (?:\.\d{2})? - .和2位
    • 的可选序列
    • (?:\.\d{2})? - 同上。
  • (?:-[A-Z]+(?:-[A-Z]+)?)? - 一个可选的非捕获组,匹配1或0次出现:
    • - - 连字符
    • [A-Z]+ - 一个或多个ASCII大写字母
    • (?:-[A-Z]+)? - 可选序列:
      • - - 连字符
      • [A-Z]+ - 一个或多个ASCII大写字母
  • $ - 字符串结尾