python入门系列十七(正则表达式)

1.引言

针对文本处理任务,正则表达式是一项很有用的能力。比如下面这些场景:

  • 输入数据校验:保障数据符合格式要求(Email,电话号码)
  • 数据提取:提取模式化数据(电话号码,ID,URL)
  • 文本处理:替换,清洗,格式化
  • 结构化文本解析:日志,配置文件
  • 安全防护:敏感信息检查,攻击特征识别

等等。这篇文章,我们来看正则表达式的方方面面。

2.正则表达式

2.1.基础语法

2.1.1.元字符

正则表达式的本质,是通过一系列特殊字符构建匹配模式,这些特殊字符分类有:定位符,通配符,量词符,逻辑符

shell 复制代码
- 定位符
^:匹配字符串开始
$:匹配字符串结尾
\b:匹配单词边界

^:匹配字符串开始示例

$:匹配字符串结尾示例

\b:匹配单词边界示例

shell 复制代码
- 通配符
.:匹配除换行符以外的任意单个字符
\d:匹配数字
\w:匹配单词字符(字母,数字,下划线)
\s:匹配空白字符(空格,制表符,换行)

.:匹配除换行符以外的任意单个字符

\d:匹配数字

\w:匹配单词字符(字母,数字,下划线)

\s:匹配空白字符(空格,制表符,换行)

shell 复制代码
- 量词符
*:0次或多次
+:一次或多次
?:0次或一次
{n}:精确n次
{n,}:至少n次
{n,m}:n到m次

*:0次或多次

+:一次或多次

?:0次或一次

{n}:精确n次

{n,}:至少n次

{n,m}:n到m次

shell 复制代码
- 逻辑符
|:或运算
[...]:字符集合
[^...]:否定字符集合

|:或运算

[...]:字符集合

\^...\]:否定字符集合 ![image.png](https://oss.xyyzone.com/jishuzhan/article/1911210566816956418/8eec1f14503ec6d13cd0896b61f947ca.webp) #### 2.1.2.分组 在文本提取场景中,可以通过"()"创建分组方式提取目标数据: ```shell ():创建捕获分组 (?:):非捕获组 (?P):命名分组 ``` **():创建捕获分组** ![image.png](https://oss.xyyzone.com/jishuzhan/article/1911210566816956418/9a5e51d4e329d0ac0b521873062f666c.webp) **(?:):非捕获组** ![image.png](https://oss.xyyzone.com/jishuzhan/article/1911210566816956418/4cff462eda65787726b751bd2b870883.webp) **(?P\]+>', '', text) print("移除html标签结果:",text) # 标准化日期格式 2023-08-15 text = re.sub(r'(\d{4})/(\d{2})/(\d{2})', r'\1-\2-\3', text) print("替换日期格式结果:",text) # 删除重复空格 text = re.sub(r'\s+', ' ', text) print("删除重复空格结果:",text) return text.strip() # 调用函数进行文本清洗 cleaned_text = clean_text(text) ``` ![image.png](https://oss.xyyzone.com/jishuzhan/article/1911210566816956418/f337c359be02d395cf7a2f73357494b9.webp) #### 2.2.3.最佳实践 在使用python编程接口处理正则表达式中,有一些可参考的最佳实践原则: * 优先使用原始字符串(r'') * 复杂模式添加注释(re.VERBOSE) * 预编译多次使用正则表达式 * 非捕获分组减少内存消耗 * 安全审查用户输入的正则表达式 * 合理使用第三方库,比如regex功能更强大

相关推荐
GOSIM 全球开源创新汇3 分钟前
科班出身+跨界双轨:陈郑豪用 AI 压缩技术,让 4K 游戏走进普通设备|Open AGI Forum
人工智能·游戏·agi
a程序小傲7 分钟前
得物Java面试被问:方法句柄(MethodHandle)与反射的性能对比和底层区别
java·开发语言·spring boot·后端·python·面试·职场和发展
sinat_286945197 分钟前
AI Coding LSP
人工智能·算法·prompt·transformer
IT_陈寒10 分钟前
Java并发编程实战:从入门到精通的5个关键技巧,让我薪资涨了40%
前端·人工智能·后端
码上宝藏14 分钟前
ComfyUI新插件上线!多模态多视角生成,中文场景适配拉满——手把手教你玩转ComfyUI-qwenmultiangle
人工智能·comfyui
故乡de云15 分钟前
Google Cloud与AWS大数据AI服务对比:2026年企业选型指南
大数据·人工智能·aws
●VON17 分钟前
可信 AI 认证:从技术承诺到制度信任
人工智能·学习·安全·制造·von
AI架构师易筋25 分钟前
AIOps 告警归因中的提示工程:从能用到可上生产(4 阶梯)
开发语言·人工智能·llm·aiops·rag
华研前沿标杆游学34 分钟前
2026走进滕讯:小游戏×大模型产业交流记
python
_codemonster44 分钟前
计算机视觉入门到实战系列(八)Harris角点检测算法
python·算法·计算机视觉