使用python与beautiful soup重新编译以匹配字符串

使用python与beautiful soup重新编译以匹配字符串,python,regex,Python,Regex,我想在返回的http头中找到一个url。根据,有一种方法可以使用soup.find_all(re.compile(“yourRegex”)来收集数组中的正则表达式匹配项。但是,我必须从我的正则表达式中删除一些内容,它在 从bs4导入BeautifulSoup 导入请求 进口稀土 导入csv 导入json 导入时间 导入文件输入 导入urllib2 data = urllib2.urlopen("http://stackoverflow.com/questions/16627227/http-er

我想在返回的http头中找到一个url。根据,有一种方法可以使用
soup.find_all(re.compile(“yourRegex”)
来收集数组中的正则表达式匹配项。但是,我必须从我的正则表达式中删除一些内容,它在

从bs4导入BeautifulSoup 导入请求 进口稀土 导入csv 导入json 导入时间 导入文件输入 导入urllib2

data = urllib2.urlopen("http://stackoverflow.com/questions/16627227/http-error-403-in-python-3-web-scraping").read()
soup = BeautifulSoup(data)
stringSoup = str(soup)

#Trying to use compile 
print soup.find_all(re.compile("[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?"))
我试着在正则表达式周围放置
()
,并以
r
开始…我缺少什么是必需的

我也一直在使用,把
[a-zA-Z0-9\-\.]+\.(com | org | net | mil | edu | com | org | net | mil | edu)+([\w\-\.@?^=%&;:/\+\\\\\\\\\\\\\.]*[\w\\\^=%%+/\\\\\\\\\\\\\\\\\\\\\.]放在regex部分,另一部分放一个url,但没有匹配项。
谢谢

试试这个,这个对我有用

x="""<!DOCTYPE html>

<html itemscope itemtype="http://schema.org/QAPage">

<head>
"""
x=”“”
"""

输出:
schema.org/QAPage
您的正则表达式没有问题,但您没有得到概念。查找所有内容仅在标记中搜索。
示例:
查找所有(“^b”)这将为您提供以名称b开头的所有标记
因此,输出将是标签,如p、tbody、body等。
。如果将re.compile放在find_all中,它将只在标记元素中查找模式,而不是整个html文档。

您需要使用vks解释的方法。

stringsoup的内容是什么。
re.match将不会给出任何结果,因为它从一开始就匹配。您可以尝试re.findallinstead@maudulus:
oh la la la
,除了
-
之外,字符类中的特殊字符不需要转义,除非它位于末尾或结尾类的基宁。编写类似于
[&;]
的东西没有任何意义,字符类是没有顺序的字符集合,它与
[;p&ma]
相同。
x="""<!DOCTYPE html>

<html itemscope itemtype="http://schema.org/QAPage">

<head>
"""