吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1065|回复: 9
收起左侧

[求助] pytnon正则表达式的问题 已解决,请标注:

[复制链接]
ymhld 发表于 2020-1-27 16:07
本帖最后由 ymhld 于 2020-1-27 17:32 编辑

在下述字符串:
(?<!\d)1[358]\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

匹配多了

免费评分

参与人数 1热心值 +1 收起 理由
alittlebear + 1 啥都不知道..这些都是虚假信息?小心泄露

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

梦汐 发表于 2020-1-27 16:32
一堆不规律的文本,想要用正则取而不出错基本不可能
梦汐 发表于 2020-1-27 16:40
不过通过一些修改就可以达到完全正确取到的效果
梦汐 发表于 2020-1-27 16:45
漁滒 发表于 2020-1-27 16:51
(?<!\d)1[358]\d{9}(?!\d)
TIM截图20200127165046.jpg
jidesheng6 发表于 2020-1-27 16:53
和楼上说的一样,不做修改的话想要不出错不可能
 楼主| ymhld 发表于 2020-1-27 17:05

是对的,你这个软件是什么?能告诉一下?
518 发表于 2020-1-27 17:06
用一个列表构建所有的手机号开头即可(不排除意外情况,例如正好以这些数字开头的脏匹配)
[Python] 纯文本查看 复制代码
import re
start = [133,149,153,173,177,180,181,189,191,193,199,190,130,131,132,145,155,156,166,171,175,176,185,186,196,134,135,136,137,138,139,147,150,151,152,157,158,159,172,178,182,183,184,187,188,195 ,198,197]
l = []
for c in start:
    com = "[^0-9]"+str(c)+"[0-9]{8}"+"[^0-9]"
    li = re.findall(com,txt)
    for i in li:
        l.append(i[1:12])
print(l)
 楼主| ymhld 发表于 2020-1-27 17:08
518 发表于 2020-1-27 17:06
用一个列表构建所有的手机号开头即可(不排除意外情况,例如正好以这些数字开头的脏匹配)
[mw_shl_code=p ...

恩,这个是一个方法,不过更想弄个简单点的正则,
(?<!\d)1[358]\d{9}(?!\d)
这个是对的
 楼主| ymhld 发表于 2020-1-27 17:12
本帖最后由 ymhld 于 2020-1-27 17:13 编辑

https://tool.oschina.net/regex

找到了,谢谢,用了一个别的表达式的,总出错,还是这个好
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-30 07:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表