参考链接:https://www.cnblogs.com/cookie1026/p/6129397.html
这里写几个我认为一定要记住的:
部分语法:
- \d 匹配数字,即0-9
- \D 匹配非数字,即不是数字
- \s 匹配空白,即空格,tab键
- \S 匹配非空白
- \w 匹配单词字符
- \W 匹配非单词字符
- (\n是换行、\t是tab键、\s是空格)
- 匹配前一个字符出现0次或者无限次,即可有可无
- ? 匹配前一个字符出现1次或者0次,即要么有1次,要么没有
- 匹配前一个字符出现1次或者无限次,即至少有1次
- (.*)是正则贪婪匹配,最大范围的匹配
- (.*?)是非贪婪模式匹配,就是限制它不让他最大范围的匹配
- re.I(大写的i)表示匹配无论公的母的大小写都要,不然后面有大小写就会出现上面匹配找不到返回空列表给你。
findall的使用
import re
text="<div>hello</div><div>hello</div>"
# 非贪婪匹配
s=re.findall(r"<div>(.*?)</div>",text)
['hello','hello']
# 贪婪匹配
t=re.findall(r"<div>(.*)</div>",text)
['hello</div><div>hello']
url="https://www.baidu.com"
pattern = re.compile("https://www.(.*).com")
id = pattern.findall(url)[0]