python利用正则表达式提取文本中特定内容

时间:2024-02-19 13:07:01

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。
re 模块使 Python 语言拥有全部的正则表达式功能。
compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。
re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

如何利用正则表达式提取文中特定内容呢?

函数介绍:

1.re.compile():该函数用于生成一个正则表达式,也就是匹配的核心部分,用来定义你需要怎么匹配,匹配什么内容,更多细节可以去参看菜鸟教程。
2.re.findall():该函数用于在指定的字符串中进行匹配。

提取特定内容:

1.在一段文本或字符串中提取从某一位置XXX开始某一位置X结束的特定内容:re.compile(\'XXX.+X\'),示例:

import re
str=\'abcd1234efg\'
pattern=re.compile(\'ab.+ef\')   #匹配从ab开始,到ef结束的内容
result=pattern.findall(str)
print(result)

运行结果如下

[\'abcd1234ef\']

2.在一段文本或字符串中提取从某一位置XXX之后某一位置X之前的特定内容:re.compile(\'XXX(.+)X\')

import re
str=\'abcd1234efg\'
pattern=re.compile(\'ab(.+)ef\')   #匹配ab与ef之间的内容
result=pattern.findall(str)
print(result)

运行结果如下

[\'cd1234\']

所以从这两个匹配可以看出,两者的主要区别就在于有无(),很实用的一种方法~~