regex - 正则表达式:检测由破折号 (-) 和/或空格分隔的电话号码
问题描述
我正在尝试识别这些类型的电话号码输入:
- 0172665476
- +6265476393
- +62-65476393
- +62-654-76393
- +62 65476393
虽然我的 regex:(?:\d+\s*)+
可以识别前 2 个样本值,但它将最后 3 个样本值识别为每行中的多个匹配项,而不是将数字识别为一个整体。
如何修改它以支持多个破折号和/或空格,并且仍然将其识别为 1 个整数而不是多个匹配项?
解决方案
你可以使用这个正则表达式:
^\+?\d+(?:[\s-]\d+)*\b
正则表达式详细信息:
^\+?
+
:在开始时匹配可选\d+
: 匹配 1+ 位(?:[\s-]\d+)*
: 匹配 0 个或多个以空格开头或-
后跟 1 个以上数字的组$
: End (由单词边界替换,好像有尾随空格,该匹配将丢失。)
推荐阅读
- questdb - 有没有将未排序的数据批量导入 QuestDB 的好方法?
- django - 未找到“”的反向。'' 不是我看不到的有效视图函数或模式名称错误
- c# - 如何将列表推送或添加到 viewModel
- javascript - 无法在 Android 浏览器中使用 Javascript 获取 Image Src
- javascript - 使用下一个 js 和图像和 svgs 在部署后不显示
- printing - 从 Windows 10 命令行在 Epson 收据打印机上打印
- android - 无论如何要在 TextField 中水平和垂直居中文本吗?
- mysql - SQL:循环遍历具有树结构数据的同一张表
- r - 通过在函数内使用循环在 R 中以数据框的形式构建合成数据
- angular - @HostListener 在 Angular 指令上使用时不会触发