python re模块 详解
re 模块是 Python 中用于处理正则表达式的标准库。正则表达式是一种强大的字符串匹配和处理工具,可以用来查找、替换、分割字符串等。下面是 re 模块的详细介绍,包括常用函数和方法。
1、导入模块
import re
2、常用函数
2.1、re.compile(pattern, flags=0)
- 编译正则表达式模式,返回一个模式对象。
- pattern:正则表达式的字符串形式。
- flags:可选,标志位,用于修改正则表达式的行为。
2.1、re.match(pattern, string, flags=0)
- 尝试从字符串的起始位置匹配一个模式。
- pattern:正则表达式的字符串形式。
- string:要匹配的字符串。
- flags:可选,标志位。
2.3、re.search(pattern, string, flags=0)
- 搜索字符串中第一次出现的模式。
- pattern:正则表达式的字符串形式。
- string:要搜索的字符串。
- flags:可选,标志位。
2.4、re.findall(pattern, string, flags=0)
- 查找字符串中所有非重叠的模式,返回一个列表。
- pattern:正则表达式的字符串形式。
- string:要查找的字符串。
- flags:可选,标志位。
2.5、re.finditer(pattern, string, flags=0)
- 查找字符串中所有非重叠的模式,返回一个迭代器。
- pattern:正则表达式的字符串形式。
- string:要查找的字符串。
- flags:可选,标志位。
2.6、re.sub(pattern, repl, string, count=0, flags=0)
- 使用 repl 替换字符串中所有匹配 pattern 的子串。
- pattern:正则表达式的字符串形式。
- repl:替换的字符串或一个函数。
- string:要处理的字符串。
- count:可选,替换的最大次数,默认 0 表示替换所有匹配。
- flags:可选,标志位。
2.7、re.split(pattern, string, maxsplit=0, flags=0)
- 根据模式分割字符串,返回一个列表。
- pattern:正则表达式的字符串形式。
- string:要分割的字符串。
- maxsplit:可选,最大分割次数,默认 0 表示分割所有匹配。
- flags:可选,标志位。
3、常用标志位
- re.IGNORECASE 或 re.I:忽略大小写。
- re.MULTILINE 或 re.M:多行模式,影响 ^ 和 $。
- re.DOTALL 或 re.S:使 . 匹配包括换行在内的所有字符。
- re.UNICODE 或 re.U:根据 Unicode 字符集解析字符。
- re.VERBOSE 或 re.X:允许正则表达式中包含空格和注释。
4、示例
import re
# 编译正则表达式
pattern = re.compile(r'\d+')
# 匹配
match = pattern.match('123abc')
if match:
print(match.group()) # 输出: 123
# 搜索
search = pattern.search('abc123')
if search:
print(search.group()) # 输出: 123
# 查找所有
findall = pattern.findall('abc123def456')
print(findall) # 输出: ['123', '456']
# 替换
sub = pattern.sub('NUMBER', 'abc123def456')
print(sub) # 输出: abcNUMBERdefNUMBER
# 分割
split = pattern.split('abc123def456')
print(split) # 输出: ['abc', 'def', '']
以上是 re 模块的基本用法和常用函数的介绍。正则表达式是一个非常强大的工具,掌握它可以大大提高字符串处理的效率和灵活性。