我有使用search
返回的Nodeset。
我想找到一个<p>
标签,其中包含&#34;订单&#34;或&#34; {收入}&#34;或&#34;收入&#34;或者&#34; {收入}每年&#34;,所以我写了一个正则表达式:
/(?i)order+|(\{*income\s*\}*\w*)/
现在我想要一个包含上述文字的<p>
标签。如何使用Nokogiri使用正则表达式来完成此操作?
答案 0 :(得分:3)
如果您已经使用正则表达式进一步搜索NodeSet
:
re = /(?i)order+|(\{*[Ii]ncome\s*\}*\w*)/
nodes = doc.search(…) # whatever you have already
orders = nodes.select{ |n| n.name=='p' && n.text =~ re }
但是,我会这样做:
orders = doc.xpath('//p[contains(.,"Order") or contains(.,"Income")]')