我想完成一個任務,我應該寫一個Ruby正則表達式來捕獲html標籤之間的項目,但我真的被卡住了。我到處搜索過,但我只能找到關於使用html解析器和其他程序的建議,我認爲我們不允許使用,因爲我們迄今爲止只學過正則表達式。正則表達式捕獲html標籤內的多個項目
的示例文本是:
<span id="animal_display">
<a href="/b/bird">Bird</a>
<a href="/c/cat">Cat</a>
<a href="/c/dog">Dog</a>
</span>
我試圖捕捉Bird
Cat
Dog
使用正則表達式,我能得到第一次出現:
/<span id="animal_display">.*?<[^>]+>(.*?)<\/[^>]+>.*<\/span>/m
我可以通過這個獲得所有三個,但我希望能夠使用列表中的正則表達式,可能有超過三個項目:
/<span id="animal_display">\s*<[^>]+>\s*(.*?)<\/a>.\s*<[^>]+>\s*(.*?)<\/a>.\s*<[^>]+>\s*(.*?)<\/a>.<\/span>/
是否有一個更廣義的正則表達式,可以在項目數目不詳的工作嗎?任何建議將不勝感激。
不要使用正則表達式來解析HTML。你的生活將會很悲傷,現在已有的工具可以爲你做。 –