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)为什么使用括号;它们只应用于分组,但不需要分组
1)方括号不适用于字符序列。它们匹配括号内的任何一个字符。 [abc]
匹配a,b或c。如果您使用[^...]
,它将匹配括号内不包含的任何一个字符。 [^abc]
匹配任何不是a,b或c的东西。
2)[^\" ]
位基本上取代了你的.
。它匹配除了"
或空间之外的任何东西。使用+
量词,它保持匹配(贪婪)直到有引号或空格。
3)因为你想获得/beautifulsoup/
,所以需要分组。使用()
,美丽的汤是第1组。没有组,你将获得整场比赛,这是href="/beautifulsoup/