python re模块替换
时间: 2025-01-05 15:34:48 浏览: 4
### 使用Python `re` 模块进行字符串替换
在Python中,`re.sub()` 函数提供了强大的功能来进行基于正则表达式的字符串替换操作[^1]。
#### 基本语法
```python
import re
result = re.sub(pattern, repl, string, count=0, flags=0)
```
- `pattern`: 正则表达式模式。
- `repl`: 替换后的字符串;也可以是一个函数,在这种情况下,该函数会被调用来计算新子串去替代匹配到的部分。
- `string`: 需要处理的目标字符串。
- `count`: 可选参数,表示最多执行多少次替换,默认为全部替换。
- `flags`: 编译标志位,比如忽略大小写等。
#### 示例代码
简单替换:
```python
text = "The rain in Spain"
result = re.sub(r"\bS\w+", "New", text)
print(result) # 输出: The rain in Newpain
```
使用回调函数实现复杂逻辑:
```python
def replace_callback(match):
word = match.group(0).upper()
return f"[{word}]"
text = "hello world this is test"
result = re.sub(r'\b[a-z]+\b', replace_callback, text)
print(result) # 输出: [HELLO] [WORLD] [THIS] [IS] [TEST]
```
当需要多次重复相同的替换规则时,可以先编译正则表达式以提高效率:
```python
regex = re.compile(r'\d+') # 匹配任意数量的数字字符
new_text = regex.sub('number', 'There are 123 apples and 456 oranges.')
print(new_text) # 输出: There are number apples and number oranges.
```
阅读全文