Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python上向RE添加可选的子表达式_Python_Html_Findall - Fatal编程技术网

在python上向RE添加可选的子表达式

在python上向RE添加可选的子表达式,python,html,findall,Python,Html,Findall,如何在python中添加正则表达式的子表达式? 指示某些html代码可能会或可能不会出现在文本中。 这是因为我正在为filmaffinity制作一个API,并想重新筛选搜索结果,但我遇到了问题 在结果的html代码中有一个分级图像,而在其他代码中没有,然后我将添加到RE的子表达式中,在该图像出现的地方,它可以为电影获取速率(一个整数),如果没有,它将返回一个空字符串 例如,这是操作系统资源html的一部分: <div class="mc-title"><a href="/es/

如何在python中添加正则表达式的子表达式? 指示某些html代码可能会或可能不会出现在文本中。 这是因为我正在为filmaffinity制作一个API,并想重新筛选搜索结果,但我遇到了问题

在结果的html代码中有一个分级图像,而在其他代码中没有,然后我将添加到RE的子表达式中,在该图像出现的地方,它可以为电影获取速率(一个整数),如果没有,它将返回一个空字符串

例如,这是操作系统资源html的一部分:

<div class="mc-title"><a href="/es/film111111.html">Movie Name</a>  (2012)   <img src="/imgs/countries/CF.jpg" title="Country Name"></div>

    <img src="http://www.filmaffinity.com/imgs/ratings/8.png" border="0" alt="Notable" >        <div class="mc-director"><a href="/es/search.php?stype=director&amp;stext=Some+Director">Some Director</a></div>
请注意,在第二个元组中,没有评级。。。只有一个“”字符串

我可怜的RE是:

<div class="mc-title"><a href="/es/film(\d{6}).html">([^<]*)</a>\s*\((\d{4})\)\s*<img src="/imgs/countries/([A-Z]{2}).jpg" title="[^"]*"></div>\s*<img src="http://www.filmaffinity.com/imgs/ratings/(\d+).png" border="0" alt="\w*" ?>\s*<div class="mc-director"><a href="/es/search.php\?stype=director&amp;stext=[\w+]*">[^<]*</a></div>

([^对于解析HTML,我发现比使用直接正则表达式更好。还有一些似乎不错,但我从未使用过。

正则表达式解析HTML?坏主意(tm)。
>>>R=findall(expression, html_Code)
>>>print R
[('111111', 'Movie Name', '2012', '8', 'Some Director'), ('000000', 'Another Movie Name', '2015', '', 'Another director')]
<div class="mc-title"><a href="/es/film(\d{6}).html">([^<]*)</a>\s*\((\d{4})\)\s*<img src="/imgs/countries/([A-Z]{2}).jpg" title="[^"]*"></div>\s*<img src="http://www.filmaffinity.com/imgs/ratings/(\d+).png" border="0" alt="\w*" ?>\s*<div class="mc-director"><a href="/es/search.php\?stype=director&amp;stext=[\w+]*">[^<]*</a></div>