Python中的re模块如何使用?
Python中的re模块是用于处理正则表达式的标准库之一。使用re模块可以实现正则表达式的匹配、搜索、替换等操作。Python的正则表达式语法类似于其他编程语言,但有些细节方面还是有不同的。
下面介绍一下re模块的常用函数、正则表达式语法以及一些例子。
一、常用函数
1. re.findall(pattern, string, flags=0)
功能:在字符串string中搜索所有符合正则表达式pattern的子字符串,并返回一个列表。
示例:搜索所有的数字,返回一个列表。
import re
string = 'abc123def456ghi789'
pattern = r'\d+'
print(re.findall(pattern, string))
输出结果:
['123', '456', '789']
2. re.search(pattern, string, flags=0)
功能:在字符串string中搜索 个符合正则表达式pattern的子字符串,并返回一个匹配对象。
示例:搜索 个数字及其后面的字符。
import re
string = 'abc123def456ghi789'
pattern = r'\d+\w*'
print(re.search(pattern, string))
输出结果:
<re.Match object; span=(3, 6), match='123'>
注意:如果没有找到匹配项,search函数返回None。
3. re.match(pattern, string, flags=0)
功能:从字符串string的开头开始匹配符合正则表达式pattern的子字符串,并返回一个匹配对象。
示例:从开头匹配数字。
import re
string = '123abc456def789'
pattern = r'\d+'
print(re.match(pattern, string))
输出结果:
<re.Match object; span=(0, 3), match='123'>
注意:如果从开头开始没有匹配项,match函数返回None。
4. re.sub(pattern, repl, string, count=0, flags=0)
功能:在字符串string中用repl替换所有符合正则表达式pattern的子字符串,最多替换count个。
示例:将所有数字替换为'X'。
import re
string = 'abc123def456ghi789'
pattern = r'\d+'
print(re.sub(pattern, 'X', string))
输出结果:
abcXdefXghiX
5. re.split(pattern, string, maxsplit=0, flags=0)
功能:用正则表达式pattern分割字符串string,并返回一个列表。
示例:用空格分割字符串。
import re
string = 'hello world python'
pattern = r'\s+'
print(re.split(pattern, string))
输出结果:
['hello', 'world', 'python']
注意:如果maxsplit参数不为0,最多只会分割maxsplit次。
6. re.compile(pattern, flags=0)
功能:编译正则表达式pattern,并返回一个正则表达式对象。
示例:编译正则表达式,并用search函数匹配字符串。
import re
pattern = re.compile(r'\d+')
string = 'abc123def456ghi789'
print(pattern.search(string))
输出结果:
<re.Match object; span=(3, 6), match='123'>
注意:编译正则表达式可以提高匹配效率,特别是在需要多次匹配同一个正则表达式时。
