正则表达式
正则表达式(Regular Expression,简称 regex 或 RE)是一种用来匹配字符串的强大工具。通过定义模式,正则表达式可以帮助我们查找、替换、或验证文本中的特定字符或字符串。在 Python 中,正则表达式通过 re
模块来实现。
1. 正则表达式基础
正则表达式使用特殊的符号和字符组合来描述匹配规则。常见的正则表达式符号如下:
符号 | 描述 |
---|---|
. |
匹配任意单个字符(除换行符) |
^ |
匹配字符串的开头 |
$ |
匹配字符串的结尾 |
* |
匹配前一个字符 0 次或多次 |
+ |
匹配前一个字符 1 次或多次 |
? |
匹配前一个字符 0 次或 1 次 |
\d |
匹配任何数字,等价于 [0-9] |
\D |
匹配任何非数字字符 |
\w |
匹配任何字母、数字或下划线,等价于 [a-zA-Z0-9_] |
\W |
匹配任何非字母、非数字或非下划线的字符 |
\s |
匹配任何空白字符,包括空格、制表符等 |
\S |
匹配任何非空白字符 |
[] |
匹配括号内的任意字符 |
` | ` |
() |
用于分组和捕获 |
2. Python 中的 re
模块
Python 提供了内置的 re
模块来处理正则表达式。常用的函数包括:
re.match()
:从字符串开头匹配正则表达式。re.search()
:搜索字符串中与正则表达式匹配的第一个位置。re.findall()
:找到字符串中所有匹配的部分,并以列表返回。re.sub()
:替换字符串中与正则表达式匹配的部分。re.split()
:根据正则表达式分割字符串。
3. 常用正则表达式操作
3.1 re.match()
re.match()
用于从字符串的开头匹配正则表达式,如果开头不匹配则返回 None
。
示例:匹配数字开头的字符串
import re
pattern = r'^\d+'
text = "123abc"
match = re.match(pattern, text)
if match:
print("匹配成功:", match.group())
else:
print