正则表达式格式 phone (+00) 000 000 00 00 | (+00) 000-000-00-00

Regex fomat phone (+00) 000 000 00 00 | (+00) 000-000-00-00 ​

你好,我想找到一个可以实现这两种格式的正则表达式:

(+00) 000 000 00 00

(+00) 000-000-00-00

我正在尝试这个 (?:\+\s*\d{2}[\s-]*)?(?:\d[-\s]*){10}/ 但是它没有按照我想要的方式工作,你能帮我吗?我正在使用 ruby 我正在用 https://rubular.com/.

探测这个正则表达式

你可以使用

/\A\(\+\d{2}\) \d{3}([ -])\d{3}\d{2}\d{2}\z/
/\A\(\+\d{2}\)\s\d{3}([\s-])\d{3}\d{2}\d{2}\z/

Rubular demo。请注意 \s 匹配空格、制表符、换行符和任何空格。

更多详情

  • \A - 字符串开头
  • \(\+ - (+ 子字符串
  • \d{2} - 两位数
  • \) - 一个 ) 字符
  • \s - 一个空格
  • \d{3} - 三位数
  • ([\s-]) - 第 1 组:空格或 - 字符
  • \d{3} - 三位数
  • </code> - 对第 1 组的反向引用:与第 1 组中的值相同</li> <li><code>\d{2} - 两位数
  • </code> - 对第 1 组的反向引用:与第 1 组中的值相同</li> <li><code>\d{2} - 两位数
  • \z - 字符串结尾。