我正在尝试为无效电话号码编写替换逻辑,我通过 map 提供了该逻辑 我读了一些正则表达式线程,但我不知道这是否真的可能。
示例:
输入电话号码:+410712345678
我正在尝试使用的正则表达式:
"^\\+(?:[0-9] ?){6,14}[0-9]$"
正则表达式和过滤后的数字应为:+41712345678。所以实际上删除了 0 的第一个实例。
第二个例子:
输入电话号码:+41(071)2345678
我正在尝试使用的正则表达式:
"^\\+(?:[0-9] ?)\\({0,3}\\){3,11}[0-9]$"
正则表达式和过滤后的数字应为:+41712345678。因此,实际上删除了 0 的第一个实例以及大括号。
我正在尝试使用某种模式来自动从这些电话号码中删除那些无效的部分。这些号码需要采用这种方式格式化才能与我的 VOIP 应用程序一起使用。
有什么方法可以使用正则表达式创建类似的过滤模式吗?
最佳答案
看来您应该只对瑞士电话号码应用该规则,即 +41
号码,因为简单地从任何国际号码中删除第一个 0
都是错误的。
所以,ph = ph.replaceFirst("^(\\+41)\\(?0?([0-9]{2})\\)?", "$1$2")
。
参见regex101了解它是如何工作的。
关于java - 正则表达式替换问题理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38247781/