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。
通过使用这些正则表达式符号和规则,你可以灵活地处理和操作文本数据。
相关推荐
想会飞的蒲公英14 分钟前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理
SeaTunnel1 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
深度研习笔记1 小时前
OpenCV工业视觉实战09|项目EXE打包+工控机无环境部署+后台常驻运行,彻底脱离Python环境,完成项目最终交付
python·opencv·webpack
碎光拾影1 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
CCPC不拿奖不改名2 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
Marst Code2 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
databook2 小时前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
Miao121312 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
CRMEB系统商城3 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源
keyipatience4 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu