您好,我想找到一个可以完成这两种格式的正则表达式:
(+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/