正则表达式

博客指出写正则表达式的难点在于不匹配不想要的内容,还介绍了正则表达式的多种规则,如.、+、*等符号的作用,[0-9]、[a-z]等字符范围的匹配,以及控制重复次数的规则、前后置条件匹配和回溯引用等内容。

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

写正则表达式困难的不是匹配到想要的内容,而是尽可能的不匹配到不想要的内容。

. 字符在正则表达式代表着可以代表任何一个字符(包括它本身)
findall返回的是所有符合要求的元素列表,包括仅有一个元素时,它还是给你返回的列表。
+的作用是将前面一个字符或一个子表达式重复一遍或者多遍。
*跟在其他符号后面表达可以匹配到它0次或多次

[]代表匹配里面的字符中的任意一个
[^]代表除了内部包含的字符以外都能匹配
正则表达式 代表的匹配字符
[0-9] 0123456789任意之一
[a-z] 小写字母任意之一
[A-Z] 大写字母任意之一
\d 等同于[0-9]
\D 等同于[^0-9]匹配非数字
\w 等同于[a-z0-9A-Z_]匹配大小写字母、数字和下划线
\W 等同于[^a-z0-9A-Z_]等同于上一条取非

为了能够准确的控制重复次数,正则表达式还提供
{a,b}(代表a<=匹配次数<=b)
如果你省略掉{1,2}中的2,那么就代表至少匹配一次,等价于?
如果你省略掉{1,2}中的1,那么就代表至多匹配2次。

元字符说明
.代表任意字符
|逻辑或操作符
[ ]匹配内部的任一字符或子表达式
[^]对字符集和取非
-定义一个区间
\对下一字符取非(通常是普通变特殊,特殊变普通)
*匹配前面的字符或者子表达式0次或多次
*?惰性匹配上一个
+匹配前一个字符或子表达式一次或多次
+?惰性匹配上一个
?匹配前一个字符或子表达式0次或1次重复
{n}匹配前一个字符或子表达式
{m,n}匹配前一个字符或子表达式至少m次至多n次
{n,}匹配前一个字符或者子表达式至少n次
{n,}?前一个的惰性匹配
^匹配字符串的开头
\A匹配字符串开头
$匹配字符串结束
[\b]退格字符
\c匹配一个控制字符
\d匹配任意数字
\D匹配数字以外的字符
\t匹配制表符
\w匹配任意数字字母下划线
\W不匹配数字字母下划线

(?<=<h1>) .+ (?=<h1>) 第一个?<=表示在被匹配字符前必须得有<h1>,后面的?=表示被匹配字符后必须有<h1>

回溯引用 \1 \2 \3 回溯到相应数字的表达式中,实现动态的正则表达式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值