正则表达式可选,取决于较旧的可选

时间:2017-03-29 08:23:44

标签: regex

我目前有这个正则表达式:

/^\+\(?([0-9]{1,4})\)?$/g

现在,我可以使用以下格式:

+31
+(31)
+(31
+31)

但是,我想修改它,所以只有两个括号它才能起作用,而不仅仅是一个。因此+(31+31)将无法使用。我怎样设法得到它?

1 个答案:

答案 0 :(得分:1)

创建一个替换组以匹配括号内的数字或没有括号:

^\+(?:\([0-9]{1,4}\)|[0-9]{1,4})$

请参阅regex demo

<强>详情:

  • ^ - 字符串锚的开始
  • \+ - 文字+
  • (?:\([0-9]{1,4}\)|[0-9]{1,4}) - 两种选择之一:
    • \([0-9]{1,4}\) - 包含文字()
    • 的1到4位数字
    • | - 或
    • [0-9]{1,4} - 1到4位
  • $ - 字符串锚点结束