【问题标题】:How can I escape quotes in a custom css pseudo class argument in Nokogiri?如何在 Nokogiri 的自定义 css 伪类参数中转义引号?
【发布时间】:2011-05-13 01:39:30
【问题描述】:

我试图在 Nokogiri 中定义一个自定义 CSS 伪类,但遇到了一些意外字符问题。

我以Node 文档中的示例为例,并尝试根据我的需要对其进行修改。我想将正则表达式与 node.text 值匹配,如下所示:

node.css('script:regex("[\"\']([^/s]+)[\"\']")', Class.new {
  def regex node_set, regex
    node_set.find_all { |node| node.text =~ /#{regex}/ }
  end
}.new)

问题在于 Node#css 只接受字符串参数。 #regex 基本上是一个方法调用,它的参数也是一个字符串。当我运行这段代码时,我会得到类似的东西:

Nokogiri::CSS::SyntaxError (unexpected '\"' after ''(?i-mx:[\'')

我已经尝试单/双转义引号,但我仍然得到这个或意外的'['。如何将单引号/双引号传递给自定义 css 方法参数?

我在此期间所做的只是匹配“脚本”,然后使用正则表达式匹配器遍历节点集。使用自定义的伪 css 类会更有用,因为它更容易重用。

【问题讨论】:

    标签: ruby regex nokogiri


    【解决方案1】:

    根据Nokogiri searching for div using xpath,我们无法从这里到达那里。

    我通常会做你恢复的事情。我将通过.select.reject 传递结果并过滤掉我想要的。当将它传递给选择引擎会更酷时,这并不是最漂亮的方法,但完成它通常胜过优雅。

    【讨论】:

      猜你喜欢
      • 2012-07-30
      • 2013-01-27
      • 2011-07-22
      • 2022-12-04
      • 2012-12-21
      • 1970-01-01
      • 2014-01-30
      • 2016-09-27
      • 1970-01-01
      相关资源
      最近更新 更多