ruby正则表达式链接尚未在锚标记中

时间:2010-05-14 10:06:55

标签: ruby regex

我正在使用ruby 1.8.7。我没有使用rails。

如何查找尚未包含锚标记的所有链接。

s = %Q{ <a href='www.a.com'><b>www.a.com</b></a> www.b.com <div>www.c.com</div> }

上述字符串的输出应为

www.b.com
www.c.com

我知道www.a.com之前的“b”标签使案件变得复杂,但这就是我必须要处理的事情。

2 个答案:

答案 0 :(得分:0)

您将要使用真正的XML解析器(Nokogiri会这样做)。正则表达式不适合这样的任务。特别是在红宝石1.8.7中,不支持负面观察。

答案 1 :(得分:0)

摆脱锚标签的脏方法。如果它们是嵌套的,它们不会按照您想要的方式工作。也使用真正的解析器; - )

s.gsub(%r[<a\b.*?</a>]i, "")
=> "  www.b.com <div>www.c.com</div> "