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))
# 结果 正文

 

posted @ 2020-05-06 18:38  CherryYang  阅读(789)  评论(0编辑  收藏  举报