在Hpricot中将id与正则表达式匹配的最佳方法是什么?

时间:2009-12-01 22:20:44

标签: ruby hpricot

使用apricot,我很容易看到如何使用CSS Selector提取具有给定id或类的所有元素。是否可以根据这些元素的某些属性是否与某些正则表达式匹配来从文档中提取元素?

1 个答案:

答案 0 :(得分:1)

如果你的意思是做:

doc.search("//div[@id=/regex/]")

然后我认为不能这样做。另一种方法是找到所有元素,然后遍历结果,删除那些与正则表达式不匹配的结果。

result = doc.search("//div")
result.delete_if (|x| x.to_s !~ /regex/)

有很多替代方法。该主题还有另外两条建议:Hpricot and Regular Expression

注意,根据您要匹配的具体内容,您可以使用Hpricot Wiki上提供的“支持但不同”的语法,例如:

E[@foo$=“bar”] 
  

匹配一个“foo”的E元素   属性值完全与   字符串“bar”