Python 为什么不是';这个正则表达式不工作吗

Python 为什么不是';这个正则表达式不工作吗,python,regex,Python,Regex,我有一个网页的源代码,格式如下: <span class="l r positive-icon"> Turkish </span> <span> The.Mist[2007]DvDrip[Eng]-aXXo </span> <span class="l r neutral-icon"> Vietnamese </span> <span> The.Mist.2007.720p.Bluray.x264.YIFY &

我有一个网页的源代码,格式如下:

<span class="l r positive-icon">
Turkish
</span>
<span>
The.Mist[2007]DvDrip[Eng]-aXXo
</span>
<span class="l r neutral-icon">
Vietnamese
</span>
<span>
The.Mist.2007.720p.Bluray.x264.YIFY 
</span>

土耳其的
.Mist[2007]DvDrip[Eng]-aXXo
越南人
The.Mist.2007.720p.Bluray.x264.YIFY
如您所见,有类的span“l r正图标”类的span“l r中性图标”。我只想得到语言,所以任何类的跨度之间的一切。我使用这个regexp,但它给了我一个空列表:

allLanguages = re.findall('<span class=".*">\s(.*)\s</span>', allLanguagesTags)
allLanguages=re.findall('\s(.*)\s',allLanguagesTags)

allLanguagesTags包含上面显示的源代码。谁能给我一个提示吗?

不要使用正则表达式。使用实际的HTML解析器。我建议您改用:

演示:

>>来自bs4导入组
>>>汤=美汤(“”)\
... 
土耳其的
... 
... 
…The.Mist[2007]DvDrip[Eng]-aXXo
... 
... 
…越南人
... 
... 
…The.Mist.2007.720p.Bluray.x264.YIFY
... 
... ''')
>>>[s.get_text().strip()表示汤中的s.find_all('span',class_u=True)]
[土耳其语,越南语]

不要使用正则表达式。使用实际的HTML解析器。我建议您改用:

演示:

>>来自bs4导入组
>>>汤=美汤(“”)\
... 
土耳其的
... 
... 
…The.Mist[2007]DvDrip[Eng]-aXXo
... 
... 
…越南人
... 
... 
…The.Mist.2007.720p.Bluray.x264.YIFY
... 
... ''')
>>>[s.get_text().strip()表示汤中的s.find_all('span',class_u=True)]
[土耳其语,越南语]

不要使用正则表达式。使用实际的HTML解析器。我建议您改用:

演示:

>>来自bs4导入组
>>>汤=美汤(“”)\
... 
土耳其的
... 
... 
…The.Mist[2007]DvDrip[Eng]-aXXo
... 
... 
…越南人
... 
... 
…The.Mist.2007.720p.Bluray.x264.YIFY
... 
... ''')
>>>[s.get_text().strip()表示汤中的s.find_all('span',class_u=True)]
[土耳其语,越南语]

不要使用正则表达式。使用实际的HTML解析器。我建议您改用:

演示:

>>来自bs4导入组
>>>汤=美汤(“”)\
... 
土耳其的
... 
... 
…The.Mist[2007]DvDrip[Eng]-aXXo
... 
... 
…越南人
... 
... 
…The.Mist.2007.720p.Bluray.x264.YIFY
... 
... ''')
>>>[s.get_text().strip()表示汤中的s.find_all('span',class_u=True)]
[土耳其语,越南语]


为什么不使用实际的HTML解析器来解析它?尝试用正则表达式从HTML中提取信息是众所周知的。对我有用:我得到['Turkish','Vietnamese']@MartijnPieters我正在使用BeautifulSoup获取“a1”类的所有s,但我不知道如何用BeautifulSoup从标记中提取内容,所以我用的是正则表达式。@user3647430:你为什么不先问一下这个问题?@MartijnPieters我不知道我能用BeautifulSoup做到这一点。谢谢你的回答,我要去看看。为什么不使用一个真正的HTML解析器来解析呢?尝试用正则表达式从HTML中提取信息是众所周知的。对我有用:我得到['Turkish','Vietnamese']@MartijnPieters我正在使用BeautifulSoup获取“a1”类的所有s,但我不知道如何用BeautifulSoup从标记中提取内容,所以我用的是正则表达式。@user3647430:你为什么不先问一下这个问题?@MartijnPieters我不知道我能用BeautifulSoup做到这一点。谢谢你的回答,我要去看看。为什么不使用一个真正的HTML解析器来解析呢?尝试用正则表达式从HTML中提取信息是众所周知的。对我有用:我得到['Turkish','Vietnamese']@MartijnPieters我正在使用BeautifulSoup获取“a1”类的所有s,但我不知道如何用BeautifulSoup从标记中提取内容,所以我用的是正则表达式。@user3647430:你为什么不先问一下这个问题?@MartijnPieters我不知道我能用BeautifulSoup做到这一点。谢谢你的回答,我要去看看。为什么不使用一个真正的HTML解析器来解析呢?尝试用正则表达式从HTML中提取信息是众所周知的。对我有用:我得到['Turkish','Vietnamese']@MartijnPieters我正在使用BeautifulSoup获取“a1”类的所有s,但我不知道如何用BeautifulSoup从标记中提取内容,所以我用的是正则表达式。@user3647430:你为什么不先问一下这个问题?@MartijnPieters我不知道我能用BeautifulSoup做到这一点。谢谢你的回答,我去看看。谢谢,太好了!我喜欢你的汤,玛蒂恩+1:)谢谢,太好了!我喜欢你的汤,玛蒂恩+1:)谢谢,太好了!我喜欢你的汤,玛蒂恩+1:)谢谢,太好了!我喜欢你的汤,玛蒂恩+1 :)
from bs4 import BeautifulSoup

soup = BeautifulSoup(yourhtml)
languages = [s.get_text().strip() for s in soup.find_all('span', class_=True)]
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('''\
... <span class="l r positive-icon">
... Turkish
... </span>
... <span>
... The.Mist[2007]DvDrip[Eng]-aXXo
... </span>
... <span class="l r neutral-icon">
... Vietnamese
... </span>
... <span>
... The.Mist.2007.720p.Bluray.x264.YIFY 
... </span>
... ''')
>>> [s.get_text().strip() for s in soup.find_all('span', class_=True)]
[u'Turkish', u'Vietnamese']