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

相关推荐
香蕉你个不拿拿^6 分钟前
【C++】中Vector与List的比较
开发语言·c++
Dream_Snowar6 分钟前
全国高校计算机能力挑战赛区域赛2019C++选择题题解
开发语言·c++
Natural_yz9 分钟前
大数据学习15之Scala集合与泛型
开发语言·学习·scala
jzwalliser15 分钟前
Python 小高考篇(4)循环语句
python
jzwalliser15 分钟前
Python 小高考篇(6)常见错误及排查
python·高考
虞书欣的619 分钟前
Python小游戏27——飞翔的小鸟
开发语言·人工智能·游戏·pycharm·pygame
AntBlack26 分钟前
这篇绝不是标题党 :太好用了 , 一天就能快速实现一个可创业小项目
前端·后端·python
scoone30 分钟前
Rust 中的 match 基本用法
开发语言·后端·rust
黑客Ela32 分钟前
计算机网络——网络安全
开发语言·php
2401_858286111 小时前
L11.【LeetCode笔记】有效的括号
c语言·开发语言·数据结构·笔记·算法·leetcode·