我正在尝试从下面给定的字符串中提取一些信息
>>> 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,但目前这对我来说是最合适的方式。