标签:电话号码 不同 长度 需要 顺序 dal col imp 表示
将下列电话号码匹配出来
(021)88776543 010-55667890 10086 02584453362 0571 66345673 (0931)5763589
import re text = ("(021)88776543 010-55667890 10086 02584453362 0571 66345673 (0931)5763589") k = re.findall(r‘\(0\d{2,3}\)\d{7,8}|0\d{2,3}[- \)]?\d{7,8}|\d+‘,text) print(k)
[‘(021)88776543‘, ‘010-55667890‘, ‘10086‘, ‘02584453362‘, ‘0571 66345673‘]
()在正则表达式里其特殊含义,所以要匹配字符"(",需要用"\("。
“?”表示前面的字符是可有可无的。
“\d”表示数字字符,“+”表示任意数字字符长度。
“\d{7,8}”表示7位或8位的数字字符。
“|”代表或者的意思,使用“|”时,要特别提醒注意的是不同条件之间的顺序。匹配时,会按照从左往右的顺序,一旦匹配成功就停止验证后面的规则。
import re text = ("(021)88776543 010-55667890 10086 02584453362 0571 66345673 (0931)5763589") k = re.findall(r‘[\(0]\d{2,3}[- \)]?\d{7,8}|\d+‘,text) print(k)
[‘(021)88776543‘, ‘010-55667890‘, ‘10086‘, ‘02584453362‘, ‘0571 66345673‘]
两种方式都能够匹配出号码。
括号通常都是成对出现的,第二种方式没有将括号两边关联到一起,假如文本中不仅有号码,还有其他丰富的信息。那用第二种方式会匹配出(0134-4587650或
(078 99999999或065)34343434或012345674567这样的组合出来。
标签:电话号码 不同 长度 需要 顺序 dal col imp 表示
原文地址:https://www.cnblogs.com/congcong826/p/8869991.html