正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。详细的说法在很多大佬都说过了,我这里就不再多说了。
废话不多说,直接上程序
number=['010-88888666','01088888666']
for i in number:
match_obj2=re.match('(0[1-9][0-9]{1,2})-?(\d{6,8})',i)
if match_obj2:
print(match_obj2.group())
print(match_obj2.group(1))
print(match_obj2.group(2))
在这里要注意的是group()的问题,在上面的程序中,我们在match匹配字符串时,进行了了两个字符串的查找,分别是查找区域号和后面的电话号码,而group(1),group(2)分别就是取区域的值和后面号码的值。还有记住当你要取group的值时,序列不是从0开始的,是从1开始的。
还有在匹配时在string前面加r。, 是为了告诉编译器这个string是个raw string,不要转意backslash ‘\’ 。看下面例子:
import re
mystr='c:\\a\\b\\c'
a=re.match('c:\\\\a\\\\b\\\\c',mystr).group()
print(a)
b=re.match(r'c:\\a\\b\\c',mystr).group()
print(b)
就体现了r与\是可以相互替补的。