Python 如何使用正则表达式将字符串与特殊字符匹配

Python 如何使用正则表达式将字符串与特殊字符匹配,python,regex,python-3.x,Python,Regex,Python 3.x,我正在尝试使用BS4获取网站数据,但无法编写准确的语句来获取所需的链接。我想获得搜索到的资源的链接,它应该在 <a href="www.speed.org">Speed Org</a> 我为此编写的代码是: r = re.compile(r'^<a(.)*speed.org(.)*</a>$') r=re.compile(r'^ 但是它没有给出正确的输出。有人可以修复这个代码吗 编辑: 有人指出表达式本身是错误的。正确的表达式应该是:r'^如果

我正在尝试使用BS4获取网站数据,但无法编写准确的语句来获取所需的链接。我想获得搜索到的资源的链接,它应该在

<a href="www.speed.org">Speed Org</a>

我为此编写的代码是:

r = re.compile(r'^<a(.)*speed.org(.)*</a>$')
r=re.compile(r'^
但是它没有给出正确的输出。有人可以修复这个代码吗

编辑:


有人指出表达式本身是错误的。正确的表达式应该是:
r'^如果您已经在使用BeautifulSoup,请不要将HTML视为字符串。让BeautifulSoup解析它,然后使用
BeautifulSoup。查找所有
以搜索您的元素:

import re
from bs4 import BeautifulSoup

soup = BeautifulSoup(your_html, 'lxml')
links = soup.find_all('a', href=re.compile('www\.speed\.org'))

href=re.compile('www\.speed\.org')
只需使用正则表达式就可以缩小指向那些
href
属性与正则表达式匹配的链接。

不要使用正则表达式解析HTML。Chtulhu会吃掉你的小猫,Zalgo会来找你。你是想抓住整个标签还是只抓住标签的href值?为什么
()*
您希望最终捕获哪个字符?(提示:在Python中,它将包含重复中最后匹配的字符。)
import re
from bs4 import BeautifulSoup

soup = BeautifulSoup(your_html, 'lxml')
links = soup.find_all('a', href=re.compile('www\.speed\.org'))