在Python中,正则表达式可以通过`re`模块进行操作。下面是一些基本的正则表达式语法和用法:
正则表达式基本语法
`\d`:匹配一个数字。
`\w`:匹配一个字母或数字。
`.`:匹配任意字符(除了换行符)。
`*`:匹配前一个字符0次或多次。
`+`:匹配前一个字符1次或多次。
`?`:匹配前一个字符0次或1次。
`{m,n}`:匹配前一个字符至少m次,至多n次。
`[]`:字符集,匹配其中任意一个字符。
`|`:逻辑表达式或,比如 `a|b` 代表可匹配 `a` 或者 `b`。
`()`:分组,默认每个分组有个索引,从1开始。
`\`:转义字符,用于取消特殊字符的特殊含义。
Python正则表达式函数
`re.compile(pattern[, flags])`:编译正则表达式,生成一个正则表达式对象。
`re.match(pattern, string, flags=0)`:从字符串开头匹配正则表达式。
`re.search(pattern, string, flags=0)`:在整个字符串中搜索匹配正则表达式。

`re.findall(pattern, string, flags=0)`:返回所有非重叠匹配的列表。
`re.sub(pattern, repl, string, count=0, flags=0)`:替换所有匹配的子串。
示例
```python
import re
编译正则表达式
pattern = re.compile(r'\d+') 匹配一个或多个数字
匹配
result = pattern.match('abc123def')
if result:
print(result.group()) 输出:123
搜索
result = pattern.search('abc123def456')
if result:
print(result.group()) 输出:123
查找所有匹配
results = pattern.findall('abc123def456ghi789')
print(results) 输出:['123', '456', '789']
替换
new_string = pattern.sub('NUMBER', 'abc123def456ghi789')
print(new_string) 输出:abcNUMBERdefNUMBERghiNUMBER
正则表达式修饰符`re.IGNORECASE`:忽略大小写。`re.MULTILINE`:多行模式,`^` 和 `$` 可以匹配每一行的开始和结束。`re.DOTALL`:`.` 匹配包括换行符在内的任意字符。注意事项在正则表达式中使用 `\` 时,需要使用 `\\` 进行转义,如 `\\d` 匹配数字。在Python字符串中,使用原始字符串(在字符串前加 `r`)可以避免转义字符的问题,如 `r'\d'`。以上是正则表达式的基本知识和在Python中的应用示例。
