Python正则表达式:如何匹配不包含特定字符的字符串

Leo
Leo
发布时间:2026-10-13| 6人浏览过
原创

本文介绍在Python中使用正则表达式匹配以https?://开头、以jpg/png/jpeg结尾的字符串,并排除空格及引号等干扰字符的方法。通过实例演示从基础表达式到优化表达式的过程,展示如何利用[^ ",]排除特定字符,实现精准匹配。

匹配目标与初步尝试

一、匹配目标

需要提取文件中所有以 https?:// 开头,并以 .jpg、.png 或 .jpeg 结尾的字符串。

二、尝试过程

1)

首先想到的正则表达式为 r'(https?://.*?.jpg|https?://.*?.png|https?://.*?.jpeg)',可简化书写为 r'(https?://.*?\.(?:jpg|png|jpeg)'。

使用上述表达式进行匹配,得到的结果为 ['http://sdsdsdadadsdsdsddsdsdawwii,https://sdsdoijcjz.jpg']。可以发现结果并不符合预期,其中混入了逗号等无关符号,因此需要进一步处理以去除这些干扰字符。

优化正则表达式排除干扰字符

2)将正则表达式修改为 r'(https?://[^ ",]*?\.jpg|https?://[^ ",]*?\.png)',简化后可写为 r'(https?://[^, "]*?\.(?:jpg|png|jpeg))'。这里利用 [^ ",] 来排除空格、单引号和双引号。

修改后的匹配结果为:[https://sdsdoijcjz.jpg']。

此时匹配结果完美符合预期。

以上关于Python正则表达式匹配不包含特定字符字符串的方法分享完毕,希望能为大家提供参考,也欢迎大家继续支持本站。

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

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 算法库。