s = '''<head>
<meta charset="UTF-8">
<title>学习HTML标签</title>
<style></style>
<link rel="stylesheet" href="">
<script></script>
</head>
<body>
<h1>正文</h1>
</body>
'''
import re
ret = re.findall(r"<meta.*?<title>", s, re.S) # .* 任意字符,且因re.S 换行符也包括在内 量词*与?结合 正则从的贪婪机制被改为懒性机制
# 匹配结果 ['<meta charset="UTF-8">\n <title>']
ret = re.findall(r"<meta\w+<title>", s, re.S) # \w 仅数字 字母 下划线
# 匹配结果 []
import re
ret = re.search(r"<h1>(\w+)\d{4}</h1>", "<body><h1>hello2008</h1></body>") # 借助()组的顺序号 获取想得到的内容
if ret:
print(ret.group())
print(ret.group(1))
ret = re.findall(r"<h1>(\w+)\d{4}</h1>", "<body><h1>BeiJing2008</h1></body>") # findall 组的优先匹配返回
print(ret)
# 结果 ['BeiJing']
ret = re.finditer(r"<h1>(?P<H1>\w+)</h1>", "<body><h1>HELLO</h1></body>") # ?<H1>取名字 借助名字H1 获取想得到的内容
print(next(ret).group("H1")) # ret 是个迭代器
# 结果 HELLO
ret = re.finditer(r"<h1>(\w+)</h1>", "<body><h1>正文</h1></body>") # ()组的顺序号 获取想得到的内容
print(next(ret).group(1))
# 结果 正文