我正在尝试使用Python中的正则表达式获取此HTML代码http://catedral.prefeitura.unicamp.br/cardapio.php的4个表的内容。 表格以。开头 " [\吨\ n \ s]的" 并完成 "< /表> [\吨\ n \ s]的< / TD>" 我使用的代码如下:
menuSearchString = '<td align="left" valign="top">[\t\n\s]*<table width="[\d%]+" class="fundo_cardapio">([\s\S\d\t\n]+)<\/table>[\t\n\s]*<\/td>'
menus = re.findall(menuSearchString,page)
print menus
但我无法获得表格的四场比赛。我想我错了贪婪的配置和&#34;?&#34;操作员,我最后试过但没有工作。
答案 0 :(得分:0)
你是对的。正则表达式的一部分是greedy
,这会导致正则表达式捕获一个匹配中的所有四个表。您所要做的就是制作此部分lazy
以获得四场比赛。
更改正则表达式的这一部分:
[\s\S\d\t\n]+
要:
[\s\S\d\t\n]+?
完整代码:
menuSearchString = '<td align="left" valign="top">[\t\n\s]*<table width="[\d%]+" class="fundo_cardapio">([\s\S\d\t\n]+?)<\/table>[\t\n\s]*<\/td>'
menus = re.findall(menuSearchString,page)
print menus