【发布时间】:2018-06-01 10:24:35
【问题描述】:
response = 'li><a href="/beautifulsoup/" title="BeautifulSoup"><......'
我打算捕获的是/beautifulsoup/
这是正确的代码
link =re.findall(r'href=\"?([^\" ]+)',response)
这是我的代码
link =re.findall(r'><a\b href=\"? .\"\b',response)
我有三个问题:
1) 为什么使用方括号。它们只能用于字符中的某些序列
2) 为什么没有'.'问号后的正确代码
3) 为什么要使用括号;它们应该只用于分组,但不需要分组
【问题讨论】:
-
你得到了别人的反对,因为你的问题被谷歌简单地回答了。但是,好消息是您可以查看regex101.com 并输入您想要的任何字符串和正则表达式,它会返回结果以及每个部分的颜色编码说明。但也请不要做太多parsing of html with regex
-
顺便说一句,don't use regular expressions to parse html/xml。了解如何使用 DOM 和 xml 解析器。我个人推荐 lxml