我正在尝试将 6 位或更多位的电话号码与以下正则表达式快速匹配。电话号码也可以包含括号和 + 国家代码。
[0-9\\s\\-\\+\\(\\)]{6,}"
。
但是,上面的实现也匹配 \r\n
和 \t
。我如何编写正则表达式,使其不匹配任何 \r\n
或 \t
。
我尝试了以下但没有成功:
[0-9\\s\\-\\+\\(\\)(^\\r\\n\\t)]{6,}"
[0-9\\s\\-\\+\\(\\)(?: (\\r|\\n|\\r\\n|\\t)]{6, }”
谢谢。
最佳答案
我建议使用
let regex = "^(?:[ +()-]*[0-9]){6,}[ +()-]*$"
或者
let regex = "^(?:[ +()-]*[0-9]){6,}[ +()-]*\\z"
详情
^
- 字符串的开始(?:[ +()-]*[0-9]){6,}
- 重复六次或更多次[ +()-]*
- 零个或多个空格,+
,(
,)
或-
个字符[0-9]
- 一个数字
[ +()-]*
- 零个或多个空格,+
,(
,)
或-
个字符$
- 字符串结尾(\z
是字符串的结尾)。
如果模式在 NSPredicate
中与 MATCHES
一起使用,您可以省略 ^
和 $
/\z
anchor 。
关于Swift 正则表达式搜索字符串除了\r\n 和\t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55040505/