python正则表达式:提取HTML元素的内容

python正则表达式:提取HTML元素的内容,python,Python,我在HTML页面中有以下格式的元素: <td class="cell1"><b>Dave Mason's Traffic Jam</b></td><td class="cell2">Scottish Rite Auditorium</td><td class="cell3">$29-$45</td><td class="cell4">On sale now</td><td

我在HTML页面中有以下格式的元素:

<td class="cell1"><b>Dave Mason's Traffic Jam</b></td><td class="cell2">Scottish Rite
Auditorium</td><td class="cell3">$29-$45</td><td class="cell4">On sale now</td><td class="cell5"><a 
href="http://www.ticketmaster.com/dave-masons-traffic-jam-collingswood-new-jersey-11-29-2014/event  
/02004B48C416D202?artistid=1033927&majorcatid=10001&minorcatid=1&tm_link=venue_msg-
1_02004B48C416D202" target="_blank">TIX</a></td><td class="cell6">AA</td><td 
class="cell7">Philadelphia</td>
戴夫·梅森的塞车苏格兰仪式 礼堂售价29-45美元,现费城出售 我想使用python分别从文本中提取“Dave Mason的交通堵塞”部分、“苏格兰仪式礼堂”部分等。 使用此正则表达式“*”将从第一个标记返回到下一换行之前的最后一个标记。如何更改表达式,使其仅返回标记对之间的块


编辑:@HenryKeiter&@Hakiko这太棒了,但是对于一个需要我使用python正则表达式的任务来说,这是一个提示,而不是一个完整的解决方案:在您的情况下,您需要使用一个非贪婪的正则表达式。基本上,你需要使用

.*?
而不是

.*
非贪婪意味着将匹配最小模式。默认情况下-最大值。

使用:


使用真正的HTML解析器,如。不要费心用正则表达式解析HTML。我认为用正则表达式提取你的内容是一件令人头痛的事。使用HTML解析器。Re:编辑:如果需要使用正则表达式,则需要更好地定义要提取的内容。所有单元格的所有内容?只是一些?找出如何描述你需要匹配的内容,剩下的只是学习使用提示:<代码> > * * '/COD>可能会在你想要的中间,一旦你弄清楚边界应该是什么。而且,作为这样一个任务的唯一可能的目的是教你Python正则表达式语法,我认为在你真正开始之前来这里乞求答案是不明智的。一旦你能更好地定义你的问题,如果你有一个使某个正则表达式工作的特定问题,问一个与之相关的问题,你将更有可能得到有用的、相关的答案。
from bs4 import BeautifulSoup

html = '''
<td class="cell1"><b>Dave Mason's Traffic Jam</b></td><td class="cell2">Scottish Rite
Auditorium</td><td class="cell3">$29-$45</td><td class="cell4">On sale now</td><td class="cell5"><a 
href="http://www.ticketmaster.com/dave-masons-traffic-jam-collingswood-new-jersey-11-29-2014/event  
/02004B48C416D202?artistid=1033927&majorcatid=10001&minorcatid=1&tm_link=venue_msg-
1_02004B48C416D202" target="_blank">TIX</a></td><td class="cell6">AA</td><td 
class="cell7">Philadelphia</td>
'''.strip()

soup = BeautifulSoup(html)
tds = soup.find_all('td')
contentList = []
for td in tds:
    contentList.append(td.get_text())
print contentList
[u"Dave Mason's Traffic Jam", u'Scottish Rite\nAuditorium', u'$29-$45', u'On sale now', u'TIX', u'AA', u'Philadelphia']