Python-正则表达式使用

Python-正则表达式使用

一、正则表达式概述

正则表达式是一种用于描述字符串模式的语言。它由一系列字符组成,可以用来匹配和操作文本。正则表达式的特点是使用特定的符号来表示模式,这些符号包括元字符、字符类、重复次数等。

二、正则表达式元字符

正则表达式的元字符是用来描述模式的特殊字符。以下是常用的元字符:

.:匹配任意字符(除了换行符)。

*:匹配前一个字符0次或多次。

+:匹配前一个字符1次或多次。

?:匹配前一个字符0次或1次。

{n}:匹配前一个字符恰好n次。

{n,}:匹配前一个字符至少n次。

{n,m}:匹配前一个字符至少n次,但不超过m次。\d:匹配任意数字(等价于0-9)。

\D:匹配任意非数字字符(等价于\^0-9)。

\s:匹配任意空白字符(等价于\\f\\n\\r\\t\\v)。

\S:匹配任意非空白字符(等价于\^\\f\\n\\r\\t\\v)。\w:匹配任意字母数字字符(等价于a-zA-Z0-9_)。

\W:匹配任意非字母数字字符(等价于\^a-zA-Z0-9_)。

三、正则表达式示例

下面是一些正则表达式的示例:

匹配整数:\d+

匹配浮点数:\d+.\d+

匹配邮箱地址:\\w.-+@\\w.-+.\w+

匹配日期(yyyy-mm-dd):\d{4}-\d{2}-\d{2}

匹配手机号码:13-9\d{9}

匹配HTML标签:<\^\>+>

匹配单词边界:\b\w+\b

匹配重复的单词:\b\w+\b.*\b\w+\b

四、Python中使用正则表达式的方法

在Python中,我们可以使用re模块来处理正则表达式。

下面是一些常用的方法:

re.match(pattern, string):从字符串的起始位置匹配正则表达式。

re.search(pattern, string):在整个字符串中搜索匹配正则表达式。

re.findall(pattern, string):查找字符串中所有匹配正则表达式的子串。

re.sub(pattern, repl, string):在字符串中替换匹配正则表达式的子串。

re.split(pattern, string):根据正则表达式分割字符串。

re.error:处理正则表达式错误。

五、使用案例

Python 复制代码
import re
# 定义要匹配的字符串
text = "Hello, my name is John Doe. I am a Python developer."
# 使用正则表达式查找字符串中的单词
pattern = r"\b\w+\b"
matches = re.findall(pattern, text)
# 输出匹配结果
print(matches)

这个案例中,我们首先定义了一个要匹配的字符串text。然后,我们使用正则表达式模式r"\b\w+\b"来查找字符串中的单词。这个模式使用\b表示单词边界,\w+表示匹配一个或多个字母数字字符。最后,我们使用re.findall方法查找所有匹配的子串,并将结果存储在matches变量中。最后,我们输出匹配结果。
输出结果 :
['Hello', 'name', 'John', 'Doe', 'I', 'am', 'Python', 'developer']

相关推荐
第九序言T5 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
Java后端的Ai之路5 小时前
CAS并发控制-从CPU指令到企业级乐观锁
vue.js·人工智能·python·cas·乐观锁
qq_426003965 小时前
UI自动化高频次登录login限流解决方案
python·ui·自动化
Sakura_j_h_6 小时前
EasyEDA PCB 快速设计Skills
c++·python·github
quantdash_cc7 小时前
如何验证历史行情的交易日期是否完整覆盖研究区间?
python·数据分析·pandas·量化交易·股票数据·quantdash
I Am a robert girl7 小时前
当智能体学会“串通”:从长程交互中读懂涌现式合谋
python·多智能体系统·多智能体协作·llm agent·涌现式合谋·对齐问题·激励机制设计
云和数据.ChenGuang8 小时前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南
网络·人工智能·python·算法·langchain
专注仿真8 小时前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法
wflynn9 小时前
GitHub 今日推荐|Edge0:让大号 MoE 模型在一台 Mac 上流式跑起来
python·开源·github
2601_967980119 小时前
python之用scapy分层解析pcap报文(Ethernet帧、IP数据包、TCP数据包、UDP数据包、Raw数据包)
python·scapy·pcap·协议分析·网络数据包