我有一个 HTML 文档作为字符串,并想用一个正则表达式命令/模式提取它的所有链接(以获得更好的性能),而不是单独搜索每个标签(这是我知道解决它的唯一方法)。
HTML 示例:
<a href="..."></a>
<img src="..." data-full-resolution="..." />
<object data="..."/>
还请考虑图像标签有两个应该被提取的属性(src
和data-full-resolution
)。
编程语言被故意遗漏,因为我需要一个“原始”解决方案,没有 HTML 库。
(?:data-full-resolution|src|href|data)=\"(.*?)\"
(?:
非捕获组
data-full-resolution|src|href|data
data-full-resolution
, src
,href
或中的一个data
)
关闭非捕获组=\"
="
在属性名称之后匹配(
捕获组
.*?
非贪婪捕获直到下一个报价)
关闭组\"
匹配关闭报价见正则表达式演示
import re
html = """<a href="<link-href>"></a>
<img src="<link-src>" data-full-resolution="<link-data-full-resolution>" />
<object data="<link-data>"/>"""
print(re.findall(r"(?:data-full-resolution|src|href|data)=\"(.*?)\"", html)) # ['<link-href>', '<link-src>', '<link-data-full-resolution>', '<link-data>']
Wherere.findall
返回捕获组的列表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句