我試圖解析某個文檔中的HTML img
標籤,特別是我想要查找圖像的所有src
,alt
和title
屬性。屬性總是以相同的順序,但是title
和alt
是可選的,它們可能不存在。Python:正則表達式中的可選組
我試過在我的正則表達式中使組(?:title="(.*?)")?
可選,但它不起作用。任何幫助,將不勝感激。
example = '<img class="alignnone wp-image-4170 size-full" title="example_title" src="http://www.example.com/wp-content/uploads/2016/07/example.jpg" alt="example_alt" width="300" height="430" />'
re.search(r'(?:title="(.*?)")?.*?src="(.*?)".*?(?:alt="(.*?)")?', example).groups()
>>> (None, 'http://www.example.com/wp-content/uploads/2016/07/example.jpg', None)
預期的結果將是:
('example_title', 'http://www.example.com/wp-content/uploads/2016/07/example.jpg', 'example_alt')
你是否正在使用正則表達式來學習練習?因爲應該避免使用正則表達式解析HTML。你應該使用適當的解析器。 – idjaw
你期望的結果是什麼? – BrenBarn
@idjaw,我同意,但在我的情況下,使用類似beautifulsoup模塊會是一個矯枉過正。我只想解析一些簡短的博客文章。 –