javascript正则表达式匹配单个或范围

时间:2018-07-26 16:33:47

标签: javascript regex

在以下两种情况下如何与正则表达式(javascript)匹配:

  • 模式情况1:任意1或2位数字(即A:1)的字母冒号
  • 模式情况2:任意字母冒号,任意1或2位破折号,任意字母:任意1或 2位数字(即A:1-A:12)

我尝试过:^([A-Z] {1}:(\ d +))仅匹配第一种情况

谢谢

3 个答案:

答案 0 :(得分:2)

这应该有效。它限制了字母(1或2)之后的位数,并且还涵盖了第二种情况:

^[A-Z]:\d{1,2}(-[A-Z]:(\d{1,2}))?$

答案 1 :(得分:0)

您可以使用此正则表达式使第二部分成为可选匹配项:

/^[a-zA-Z]:\d{1,2}(?:-[a-zA-Z]:\d{1,2})?$/gm

RegEx Demo

答案 2 :(得分:0)

使用正向前瞻= (?=...)

^([A-Z]{1}\:\d{1,2}(\-(?=[A-Z]{1}:\d{1,2}))?)+$

Regex Online