我现在正在学习Python3,来到了re
模块。我想写一个模式,在给定的字符串中搜索手机号码。对于印度数字。,
re.compile(r'\d\d\d\d\d\d\d\d\d\d')
就足够了。但印度也没有
使用+91
和0
作为国家代码,我想在结果中也包括这些。
我试过:
r = re.compile(r'(0|\+91)?\d\d\d\d\d\d\d\d\d\d')
它又回来了
['+91', '0', '']
作为r.findall(string)
的输出。如何解决这个问题?你知道吗
编辑:字符串可以是任何文本,如“no1=99xxxxxxxxx,no2=+9199xxxxxxxxx”。你知道吗
电话号码的好模式是
这种模式不能捕捉每个语法错误。更多信息请参见this web page。你知道吗
首先,可以使用限制来指定位数,而不是全部键入。其次,如果您不想单独获得捕获的组的结果,可以使用非捕获分组(通过在组的前面添加
?:
)。你知道吗关于
re.findall()
的结果,它将返回所有匹配的groupincludegroup0,它是正则表达式匹配字符串的结果。在本例中,如果它没有返回您的字符串,可能是因为您的输入字符串与这个正则表达式不匹配。你知道吗相关问题 更多 >
编程相关推荐