Python学习笔记:正则表达式
正则表达式如果你刚开始接触它,大概率会觉得:“这玩意儿看着像一串加密过的咒语,鬼才看得懂!” 但等你真的学会之后,你会忍不住感叹:正则表达式就是文本处理的瑞士军刀。
想象一下,你需要:
-
验证手机号是不是 11 位数字?
-
批量提取日志里的 IP 地址?
-
清洗掉用户输入中奇怪的符号?
如果没有正则,你可能要写一堆 if-else,还得一个一个循环。 但有了正则,三两行代码就能搞定。
一、正则到底是个啥?
用一句话概括:正则就是一套专门用于字符串匹配的规则语言。
你可以把它理解为“用一套符号写下来的过滤规则”,Python 自带的 re
模块就是这把钥匙。
import re # Python的正则表达式模块# 简单示例:检查字符串是否以h开头
result = re.match('h', 'hello')
print(result) # 匹配成功,返回Match对象
很多人第一次看到正则时,心里的想法是: “这点小事,写个 if 不香吗?”
没错,小场景确实没必要用正则。但当规则一复杂,if else 马上变成灾难,维护起来比天书还难。
而正则写起来可能就一行:又短、又快、又精准。
二、五大常用匹配方法
先别急着背各种符号,咱们先搞清楚 re
里最常见的五种操作。
-
re.match()
:从头匹配
result = re.match('h','hello') # 成功
print(result.group()) # 输出: hresult = re.match('h','world') # 失败
print(result) # None
-
re.search()
:全局找第一个