【python基础】十七、Python正则 re

本文深入解析了正则表达式的各种元素,包括筛选、判断、匹配等核心功能,详细介绍了正则表达式中的特殊字符、范围类、次数类、转义类及分组匹配等内容,为读者提供了一个全面的正则表达式学习指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正则

  • 筛选

  • 判断

  • match – 匹配开头

  • search – 匹配第一个

  • findall – 匹配全部

.	用于匹配除换行符(\n) 之外的所有字符。   
^	用于匹配字符串的开始,即行首。     
$	用于匹配字符串的末尾(末尾如果有换行符\n,就匹配\n前面的那个字符),即行尾。

*	用于将前面的模式匹配0次或多次(贪婪模式,即尽可能多的匹配)      
+	用于将前面的模式匹配1次或多次(贪婪模式)       
?	用于将前面的模式匹配0次或1次(贪婪模式)       
*?	+?	??	即上面三种特殊字符的非贪婪模式(尽可能少的匹配)。       
{m,n}	用于将前面的模式匹配m次到n次( 贪婪模式),即最小匹配m次,最大匹配n次。      
{m,n}?  即上面‘{m,n}’的非贪婪版本。       
\	是转义字符,在特殊字符前面加上\,特殊字符就失去了其所代表的含义,比如\+就仅仅代表加号+本身。        
[]	用于标示一组字符,如果是第一个字符,则标示的是一个补集。比如[0-9]表示所有的数字,[ 0-9]表示除了数字外的字符     
|	比如A I B用于匹配A或B。     
(...)	用于匹配括号中的模式,可以在字符串中检索或匹配我们所需要的内容。        
  • 范围类
[]          匹配范围
.           所有字符(除\n外)
^           行首 
$           行尾  
^..str..$   从头匹配到尾 

[0-9]       纯数字
[a-zA-Z]    纯字母
[0-9a-zA-Z] 数字和字母
[#$%^&*]    #或$或%或^或&或*

  • 次数类
*       0次以上
+       1次以上
{m,}    m次以上

{n}     n次
{m,n}   m-n次   

?       0次 或 1次
  • 转义类
\A      从开始匹配
\Z      从结束匹配
\b      匹配单词边界 即单词间的空格
\B      非单词边界

\d      [0-9]
\D      [^\d]非数字

\s      [\t\n\r\f] 匹配任意空白字符
\S      [^\s]匹配任意非空白字符

\w      [a-zA-Z0-9_] 匹配任意 数字 字母 下划线
\W      [^\w]
\\      匹配\

引用第一组匹配的内容


分组匹配

import re
html = '<html><h1>你哈</h1></html>'
res_h = re.match(r'<(\w+)><(\w+)>(.+)(</\2>)(</\1>)', html)

# 分组 + 起名
res_n = re.match(r'<(?P<name1>\w+)><(?P<name2>\w+)>(.+)(</(?P=name2)>)(</(?P=name1)>)', html)
print(res_n)
# (?P<name>)    起名
# (?P=name)     引用

  • 其他
re.sub('\d','rep',str)
re.sub('\d',func, str)

re.split()


没怎么贴代码

在b站学习中

个人主页

学习链接

欢迎 批评 指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值