Swift 正则表达式搜索字符串除了\r\n 和\t

标签 swift regex

我正在尝试将 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/

相关文章:

swift - macOS - UserDefaults 在 Swift 和 Terminal 中是不同的

ios - 如何在 swift 4 的 uitableView 中添加多个部分

ios - 如何在两个带有参数的函数之间快速传递值或数据?

c# - 具有多个 Var 变量的正则表达式

regex - 正则表达式匹配以 y 或 z 结尾的单词,但不能同时匹配

regex - 用换行符/段落标记替换所有空格以制作单词列表

ios - 为什么 UILabel 的边框在滚动 tableview 后设置?

arrays - 使用 core-data 从初始化器中的字符串数组中减去 Stings?

java - 如何在java中使用正则表达式从base64字符串中删除数据:;base64,?

python - 从已编译的 re 中获取模式?