电话号码正好是11位,但其中可能还有其他可读符号,如空格,括号或连字符。
是否可以将这些数字与一个正则表达式相匹配? 没有任何编程方法,只需正则表达式。例如。以下所有数字应匹配:
我怀疑它可能与积极前瞻有关。正则表达式可能会检查是否有11位数字,然后检查所有其他符号是否来自某个集合。但我还没有找到解决方案,所以任何想法都会受到高度赞赏。
答案 0 :(得分:0)
有很多方法可以做到这一点。以及在StackOverflow上执行此操作的各种有趣且好的方法。当然,你可以只计算数字,(忽略大量和反对),很多很酷的方式。可能没有一种“最好”的方式,如果你使用的语言可能已经存在一个模块。
如果您只是有一个带有额外内容的数字列表,并且您知道这是“电话”列表,我会删除所有非数字,看看您是否获得11个数字。以下是Python中的一个示例:
import re
thelist = [
"71234567890",
"7 123 4568790",
"7(123)4567890",
"7 (123) 456-78-90",
"7(123) 456-7890",
]
for phone_dirty in thelist:
phone_clean = re.sub("\D", "", phone_dirty)
if len(phone_clean) == 11:
print(phone_clean + " is a phone number")
else:
print(phone_clean + " is not a phone number")
您可以检查计数或进行其他类型的验证。真的有很多方法可以做到这一点,这只是一个。
答案 1 :(得分:0)
\d[\(\)\-]?\d[\(\)\-]?\d[\(\)\-]?\d[\(\)\-]?\d[\(\)\-]?\d[\(\)\-]?\d[\(\)\-]?\d[\(\)\-]?\d[\(\)\-]?\d[\(\)\-]?\d[\(\)\-]?\d[\(\)\-]?
实际上,
\d[\(\)\-]?
重复12次