正则表达式格式电话 (+00) 000 000 00 00 | (+00) 000-000-00-00​

标签 regex ruby regex-group

您好,我想找到一个可以完成这两种格式的正则表达式:

(+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}\1\d{2}\1\d{2}\z/
/\A\(\+\d{2}\)\s\d{3}([\s-])\d{3}\1\d{2}\1\d{2}\z/

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

更多详细信息

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

关于正则表达式格式电话 (+00) 000 000 00 00 | (+00) 000-000-00-00​,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67024374/

相关文章:

java - 字符类减法,Java语法转RegexBuddy

php - 什么定义了要在 preg_replace() 中替换的正则表达式部分?

javascript文本匹配计数和正则表达式空格不起作用

python - 使用正则表达式替换命令在文件名字符串中小于 10 的数字前面插入前导零

css - 我怎样才能使这种情况与正则表达式匹配?

ruby - 使用 rspec 测试 ruby​​ 程序

ruby-on-rails - 从 rails 5 迁移到 rails 6

ruby - 需要 ruby​​ 目录中所有文件的最佳方法?

python - 用于提取域和子域的正则表达式

regex - 正则表达式用于匹配特定单词并忽略换行