Python 的 re
模块提供了多种方法来处理正则表达式。以下是一些常用的方法及其功能介绍:
1. re.match()
在字符串的开始位置进行匹配。
python
import re
pattern = r'\d+'
string = "123abc456"
match = re.match(pattern, string)
if match:
print(f"匹配的字符串是: '{match.group()}'")
2. re.search()
在整个字符串中搜索模式的首次出现。
python
import re
pattern = r'\d+'
string = "abc123def456"
match = re.search(pattern, string)
if match:
print(f"匹配的字符串是: '{match.group()}'")
3. re.findall()
返回所有非重叠的匹配,以列表形式返回。
python
import re
pattern = r'\d+'
string = "abc123def456ghi789"
matches = re.findall(pattern, string)
print(f"所有匹配项: {matches}")
4. re.finditer()
返回所有非重叠的匹配,以迭代器形式返回每个匹配的 MatchObject
。
python
import re
pattern = r'\d+'
string = "abc123def456ghi789"
matches = re.finditer(pattern, string)
for match in matches:
print(f"匹配的字符串是: '{match.group()}'")
5. re.sub()
使用指定的替换内容,替换所有匹配的子字符串。
python
import re
pattern = r'\d+'
string = "abc123def456ghi789"
replacement = '#'
result = re.sub(pattern, replacement, string)
print(f"替换后的字符串: '{result}'")
6. re.subn()
与 re.sub()
类似,但返回一个包含新字符串和替换次数的元组。
python
import re
pattern = r'\d+'
string = "abc123def456ghi789"
replacement = '#'
result, num_subs = re.subn(pattern, replacement, string)
print(f"替换后的字符串: '{result}'")
print(f"替换次数: {num_subs}")
7. re.split()
根据正则表达式模式分割字符串,返回一个列表。
python
import re
pattern = r'\d+'
string = "abc123def456ghi789"
result = re.split(pattern, string)
print(f"分割结果: {result}")
8. re.compile()
预编译一个正则表达式模式,可以提高重复使用该模式的效率。
python
import re
pattern = re.compile(r'\d+')
string = "abc123def456ghi789"
match = pattern.search(string)
if match:
print(f"匹配的字符串是: '{match.group()}'")
9. re.escape()
对字符串中所有可能被解释为正则表达式特殊字符的字符进行转义。
python
import re
string = "example.abc*123"
escaped_string = re.escape(string)
print(f"转义后的字符串: '{escaped_string}'")