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">肖战']
625

被折叠的 条评论
为什么被折叠?



