首页 > 编程知识 正文

python正则表达式提取字符串(python3正则表达式)

时间:2023-05-06 01:17:18 阅读:79471 作者:2267

Python正则表达式

我们要做什么

使用Python正则表达式在文本文件中搜索电话号码,并在找到后写入新文件。

先介绍下正则表达式的用法:

1.先部署re模块:

导入re

创建Regex对象(正则表达式对象)

my _ reg=re.com pile (r 'ddd- ddddddd ' )

传递给compile函数的参数是匹配的模式。 这里的d意味着与数字一致。

正则表达式包含反斜杠,因此使用原始字符串。 否则,就需要摆脱反斜杠。

因此,与正则表达式匹配的字符串是三个数字、水平条和八个数字。

另一种简洁的写法是my_reg=re.compile(r(d )3)-(d )。

大括号和大括号中的数字表示与前面的模式匹配多少次。

使用Regex对象的搜索方法搜索字符串

match=my _ reg.search (XXX 025-12345678 ooo 010-87654321 CCC ) )。

如果匹配字符串,则搜索方法返回match对象;如果不匹配,则返回None

调用match对象的group方法可以得到匹配的字符串

match.group (

' 025-12345678 '

但是,这种方法只返回第一个匹配的结果

如果结果不匹配:

match=my _ reg.search (XXX 025-123 xx 678 ooo 010-876 xx 4x1CCC ) )

是打印(匹配)

诺诺

match is None

是ool (匹配)

假的

使用findall方法返回所有结果,并返回字符串列表

(如果没有匹配的结果,则为空列表。)

result list=my _ reg.find all (XXX 025-12345678 ooo 010-87654321 CCC )

结果列表

['025-12345678 ',' 010-87654321']

如果没有匹配的结果:

result list=my _ reg.find all (XXX 025-1234 xx 78 ooo 010-87xx 321 CCC )

结果列表

[]

下面来完成我们的例子:

查找需要搜索的文件。 (本文为了演示,从互联网上随意复制了网页,并手动在其中插入了电话号码。 )在此示例中,需要搜索的文件是text.txt。 请确保Python文件也保存在与该文件相同的目录中。

Python脚本如下:

导入re

result=open('result.txt ',' w ' ) )

phone _ reg=re.com pile (r (d {3}-(d {8} ) )

withopen(text.txt ) ) as f:

for line in f:

match=Phone_reg.findall(line ) )。

if match:

for rec in match:

result.write(rec )

result.write('n ' )。

result.close (

结果,将在同一个目录中生成result.txt文件,并使用其内容匹配的所有电话号码。

进入我的结果:

025-11111111

123-89876548

010-11123411

456-87646789

789-88888888

888-88888888

025-11561111

025-11116711

888-88888888

010-11678111

055-11345111

011-11543211

欢迎大家转发!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。