我试图提取从如下字符串现在在正则表达式条件匹配
>>> st = '''
... <!-- info mp3 here -->
... 192 kbps<br />2:41<br />3.71 mb </div>
... <!-- info mp3 here -->
... 3.49 mb </div>
... <!-- info mp3 here -->
... 128 kbps<br />3:31<br />3.3 mb </div>
... '''
>>>
,当我使用了一些资料下面的正则表达式,我的输出是
>>> p = re.findall(r'<!-- info mp3 here -->\s+(.*?)<br />(.*?)<br />(.*?)\s+</div>',st)
>>> p
[('192 kbps', '2:41', '3.71 mb'), ('128 kbps', '3:31', '3.3 mb')]
,但我需要的输出是
[('192 kbps', '2:41', '3.71 mb'),(None,None,'3.49mb'), ('128 kbps', '3:31', '3.3 mb')]
所以,我的问题是如何改变我的以上regex
以匹配所有条件。我相信我目前的正则表达式严格依赖于<br />
标签,所以我如何使它成为条件。
我知道我不应该使用正则表达式来解析html,但目前这是对我来说最合适的方式。