pytnon正则表达式的问题 已解决,请标注:
本帖最后由 ymhld 于 2020-1-27 17:32 编辑在下述字符串:
(?<!\d)1\d{9}(?!\d)
7515909321918726
收货人: 大头
地址:福建省 泉州市 安溪县 蓝溪国际·水晶城8号楼
邮编:000000
电话:15905050000
座机:取消召回客户要的
2019-05-24 11:30:25 小一(98222229195)
好的
2019-05-24 11:58:54 旗舰服-小魏(131999512794)
运单号:7514970073125023
快递公司:中通快递
收货人: 林小姐
地址:广东省 中山市 古镇镇曹五宝源首巷1119号
邮编:000000
电话:13320980000
不是本人签收
2019-05-23 19:59:01 丧(11023044002)
8059781193798388897
李小三,15200970001,,海南省 海口市 美兰区 美兰区 美兰区 美兰区 大通快递,000000
召回
2019-05-23 19:59:36 丧(11023097002)
805986398267943302
韩大梅,18711114029,,山东省 潍坊市 诸城市 山东省 潍坊市潍坊市 潍坊市 潍坊市 潍坊市,000000
召回
2019-05-24 8:40:17 -盼盼(4688111316)
600191222114417089
收货人: 梧桐
地址: 河北石家庄市新华区新华区新华区新华区新华区新华区1003
手机号: 18044336097
召回
2019-05-24 8:40:35 古盼盼(4688111116)
600003141199842922
收货人: 肖丽
地址: 广东深圳市南山区南山区南山区南山区南山区南山区
手机号: 18111557709
召回
在上述字符串中,只匹配出
15905050000
13320980000
15200970001
18711114029
18044336097
18111557709
用:\d{11}(?!d)
16
75159093219
15905050000
98222229195
13199951279
75149700731
13320980000
11023044002
80597811937
15200970001
11023097002
80598639826
18711114029
60019122211
18044336097
60000314119
18111557709
匹配多了 一堆不规律的文本,想要用正则取而不出错基本不可能 不过通过一些修改就可以达到完全正确取到的效果 (?<!\d)1\d{9}(?!\d)
和楼上说的一样,不做修改的话想要不出错不可能 aiai 发表于 2020-1-27 16:51
(?
是对的,你这个软件是什么?能告诉一下? 用一个列表构建所有的手机号开头即可(不排除意外情况,例如正好以这些数字开头的脏匹配)
import re
start =
l = []
for c in start:
com = "[^0-9]"+str(c)+"{8}"+"[^0-9]"
li = re.findall(com,txt)
for i in li:
l.append(i)
print(l) 518 发表于 2020-1-27 17:06
用一个列表构建所有的手机号开头即可(不排除意外情况,例如正好以这些数字开头的脏匹配)
恩,这个是一个方法,不过更想弄个简单点的正则,
(?<!\d)1\d{9}(?!\d)
这个是对的 本帖最后由 ymhld 于 2020-1-27 17:13 编辑
aiai 发表于 2020-1-27 16:51
(?
https://tool.oschina.net/regex
找到了,谢谢,用了一个别的表达式的,总出错,还是这个好
页:
[1]