我正在尝试完成一项任务,我应该编写一个 Ruby 正则表达式来捕获 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>/
是否有更通用的正则表达式可以处理未指定数量的项目?任何建议将不胜感激。