Python中,正则表达式,

目录

在Python中,正则表达式(Regular Expressions,简称regex)是一种强大的文本处理工具,用于匹配、查找和替换字符串中的模式。Python通过 re模块 提供正则表达式支持。以下是一些常见的正则表达式规则和示例,帮助你更好地理解和使用正则表达式。

常用正则表达式符号和规则

1.基本匹配

python 复制代码
.:匹配除换行符外的任意单个字符。
\d:匹配一个数字字符,等价于 [0-9]。
\D:匹配一个非数字字符,等价于 [^0-9]。
\w:匹配一个单词字符(字母、数字、下划线),等价于 [a-zA-Z0-9_]。
\W:匹配一个非单词字符。
\s:匹配一个空白字符(空格、制表符、换行符等)。
\S:匹配一个非空白字符。

2.量词

python 复制代码
*:匹配前面的字符零次或多次。
+:匹配前面的字符一次或多次。
?:匹配前面的字符零次或一次。
{n}:匹配前面的字符恰好n次。
{n,}:匹配前面的字符至少n次。
{n,m}:匹配前面的字符至少n次,至多m次。

3.边界匹配

python 复制代码
^:匹配字符串的开头。
$:匹配字符串的结尾。
\b:匹配单词的边界。
\B:匹配非单词边界。
分组和捕获
():用于分组和捕获匹配的内容。
(?:):用于分组但不捕获。

4.选择和逻辑

python 复制代码
|:表示或,匹配左边的模式或右边的模式。
特殊字符
\:用于转义特殊字符,使其成为普通字符。

5.示例代码

python 复制代码
import re
 # 示例字符串
text = "The price is $19.99 for the book and $29.99 for the magazine."
 
# 匹配所有价格
prices = re.findall(r'\$\d+\.\d{2}', text)
print("Prices:", prices)  # 输出: ['$19.99', '$29.99']
 
# 匹配所有单词
words = re.findall(r'\b\w+\b', text)
print("Words:", words)  # 输出: ['The', 'price', 'is', 'for', 'the', 'book', 'and', 'for', 'the', 'magazine']
 
# 匹配以特定字符开头的单词
words_with_b = re.findall(r'\b[bB]\w+\b', text)
print("Words starting with 'b':", words_with_b)  # 输出: ['book']
 
# 匹配所有数字
numbers = re.findall(r'\d+', text)
print("Numbers:", numbers)  # 输出: ['19', '99', '29', '99']
解释
r'\$\d+\.\d{2}':匹配价格格式,如 $19.99。
\$:匹配美元符号。
\d+:匹配一个或多个数字。
\.:匹配小数点。
\d{2}:匹配两个数字。
r'\b\w+\b':匹配所有单词。
\b:匹配单词边界。
\w+:匹配一个或多个单词字符。
r'\b[bB]\w+\b':匹配以 b 或 B 开头的单词。
[bB]:匹配 b 或 B。
通过使用这些正则表达式符号和规则,你可以灵活地处理和操作文本数据。
相关推荐
默_笙4 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
qq_426003964 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技4 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读4 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时4 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
C语言小火车4 天前
C/C++ 为什么需要编译器?
开发语言·c++
奇思妙想聪明勤奋的小羊4 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1234 天前
2026年第38周GitHub趋势周报
python·科技·github