使用 apricot,很容易看出我如何使用 CSS 选择器提取具有给定 id 或类的所有元素。是否可以根据这些元素的某些属性是否与某些正则表达式匹配来从文档中提取元素?
问问题
193 次
1 回答
1
如果您的意思是执行以下操作:
doc.search("//div[@id=/regex/]")
那我不认为它可以做到。另一种方法是查找所有元素,然后遍历结果,删除那些与正则表达式不匹配的元素。
result = doc.search("//div")
result.delete_if (|x| x.to_s !~ /regex/)
有很多替代方法。该线程还有另外两个建议:Hpricot 和 Regular Expression。
请注意,根据您尝试匹配的确切内容,您可能能够使用Hpricot Wiki上提供的“支持但不同”的语法,例如:
E[@foo$=“bar”]
匹配“foo”属性值以字符串“bar”结尾的 E 元素</p>
于 2009-12-02T14:51:18.107 回答