我試圖提取從如下字符串現在在正則表達式條件匹配
>>> 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,但目前這是對我來說最合適的方式。