正则常用符号

1.元字符

.:匹配除换行符以外的任一字符

\w:匹配字母or数字or下划线
\s:任一空白符
\d:任一数字
\W:匹配非字母or数字or下划线
\S:匹配非空白符
\D:匹配非数字

\n:换行符
\t:制表符
^:字符串开始
$:字符串结尾

a|b:匹配字符a或字符b
():匹配括号内的表达式,也表示一个组
[]:匹配字符组中的字符
[^...]:匹配除字符组中的所有字符

2.量词

控制元字符出现的次数
*:重复0次or更多次
+:重复1次or更多次
?:重复0次or1次
{n}:重复n次,n为具体的整数
{n,}:重复n次or更多次
{n,m}:重复n~m次

3.贪婪匹配和惰性匹配

.*:贪婪匹配
.*?:惰性匹配
❤️ 例1:

import re

str = '王老师对肖老师说:“肖老师没有妆也很帅啊”'
pattern1 = '王老师.*肖老师' #贪婪
pattern2 = '王老师.*?肖老师' #惰性

result1 = re.search(pattern1,str)
result2 = re.search(pattern2,str)
print(result1.group(0),'\n',result2.group(0))
王老师对肖老师说:“肖老师 
王老师对肖老师

❤️ 例2:

import re

str = '<div class="wyb">王一博</div><div class="xz">肖战</div>'
pattern1 = '<div class=".*?">(.*?)</div>'
pattern2 = '<div class=".*">(.*?)</div>'
pattern3 = '<div class=".*?">(.*)</div>'

result1 = re.findall(pattern1,str) 
#匹配到的句子分别是:<div class="wyb">王一博</div> 以及 <div class="xz">肖战</div>
result2 = re.findall(pattern2,str) 
#<div class=".*"> 匹配的是:<div class="wyb">王一博</div><div class="xz"> ;.*? 匹配的是:肖战
result3 = re.findall(pattern3,str)
#<div class=".*?"> 匹配的是:<div class="wyb"> ;.* 匹配的是:王一博</div><div class="xz">肖战
print(result1)
print(result2)
print(result3)
['王一博', '肖战']
['肖战']
['王一博</div><div class="xz">肖战']
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值