Python正则表达式核心方法与参数详解

江屿
江屿
发布时间:2026-10-15| 6人浏览过
原创

本文详细介绍Python中正则表达式模块re的核心功能,涵盖search、findall、sub及compile四个关键方法的具体用法与返回值差异,并解析re.I和re.S等常用标志位的作用,帮助开发者高效进行文本匹配与替换操作。

在Python中调用正则表达式功能,主要依赖re模块提供的以下核心方法。

search(pattern, string, flags=0)

  • 该方法会扫描整个目标字符串string,并返回与正则表达式pattern相匹配的结果,返回值可能为None或匹配对象。
  • 当存在匹配成功的字符串时,该方法返回一个包含匹配条件的对象(通常对应第一个匹配到的子串);若未找到匹配项,则返回None。
import re
#导入正则库

content = 'Hello 1234567 Hello 666'
#要匹配的文本
res = 'Hello\s'
#正则字符串

result = re.search(res, content)
if result is not None:
    print(result.group())
    #输出匹配得到的字符串 'hello'(返回的得是第一个'hello')
       
print(result.span())
#输出输出匹配的范围(匹配到的字符串在原字符串中的位置的范围)

res1 = 'Hello\s(\d)(\d+)'
result = re.search(res1, content)
print(result.group(1))
#group(1)表示匹配到的第一个组(即正则字符串中的第一个括号)的内容
print(result.group(2))

findall(pattern, string, flags=0)

  • 该方法扫描整个上下文字符串,返回与正则表达式pattern相匹配的所有结果,返回值可能为None或列表。
  • 若存在匹配成功的字符串,该方法返回一个列表,其中每个元素为符合匹配条件的子字符串;若未找到匹配项,则返回None。
import re

res = 'Hello\s'
results = re.findall(res, content)
if results is not None:
   print(results)
   #输出: ['hello','hello']

res1 = 'Hello\s(\d)(\d+)'
results = re.findall(res1, content)
if result is not None:
    print(results) 
    # 当正则字符串中出现括号时,所得到列表的每个元素是元组
    # 每个元组的元素都是依次匹配到的括号内的表达式的结果
    #输出: [('1','1234567'),('6','666')]

sub(pattern, repl, string, count=0, flags=0)

  • 此方法主要用于修改文本内容。
  • 它使用由pattern匹配string所得到的字符串,将其替换为指定的repl参数值。
import re

content = '54aK54yr5oiR54ix5L2g'
res = '\d+'
content = re.sub(res, '', content)
print(content)

compile(pattern, flags=0)

该函数将正则表达式pattern编译为一个正则表达式对象并返回,以便在后续操作中复用该对象。

import re

content1 = '2019-12-15 12:00'
content2 = '2019-12-17 12:55'
content3 = '2019-12-22 13:21'
pattern = re.compile('\d{2}:\d{2}')
result1 = re.sub(pattern, '', content1)
result2 = re.sub(pattern, '', content2)
result3 = re.sub(pattern, '', content3)
print(result1, result2, result3)

flags的一些常用值

  • re.I:使匹配过程对大小写不敏感。
  • re.S:使特殊字符.能够匹配包括换行符在内的所有字符。
import re
re.compile(res, re.I)
#如果res可以匹配大写字母,那它也可以匹配相应的小写字母,反之也可

re.compile(res,re.S)
#使res中的'.'字符可以匹配包括换行符在内的所有字符

总结

本文内容到此结束,希望能为您提供帮助,欢迎您持续关注本站以获取更多技术资讯!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。