python re模块 详解

re 模块是 Python 中用于处理正则表达式的标准库。正则表达式是一种强大的字符串匹配和处理工具,可以用来查找、替换、分割字符串等。下面是 re 模块的详细介绍,包括常用函数和方法。

1、导入模块

python 复制代码
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、示例

python 复制代码
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 模块的基本用法和常用函数的介绍。正则表达式是一个非常强大的工具,掌握它可以大大提高字符串处理的效率和灵活性。

相关推荐
用户277844910499313 小时前
借助DeepSeek智能生成测试用例:从提示词到Excel表格的全流程实践
人工智能·python
JavaEdge在掘金15 小时前
ssl.SSLCertVerificationError报错解决方案
python
我不会编程55515 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
李少兄15 小时前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
老歌老听老掉牙16 小时前
平面旋转与交线投影夹角计算
python·线性代数·平面·sympy
满怀101516 小时前
Python入门(7):模块
python
无名之逆16 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
你觉得20516 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
似水এ᭄往昔16 小时前
【C语言】文件操作
c语言·开发语言
啊喜拔牙16 小时前
1. hadoop 集群的常用命令
java·大数据·开发语言·python·scala