Re模块 关于标签内容的获取
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)) # 结果 正文