-1

我有标签:

val = "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Mobile Web</a>"

在我的测试中:

val[/(>.*<)/]

回报:

>Mobile Web<

我想返回文本:

Mobile Web
4

4 回答 4

7

你可以用Nokogiri解析它:

require 'nokogiri'

html = '<a href="https://mobile.twitter.com" rel="nofollow">Mobile Web</a>'
elem = Nokogiri(html)

puts elem.text
于 2013-04-23T02:16:20.410 回答
2

您可以使用 match 并使用括号选择您想要的部分

/>(.*)</.match(val)[1]

我会使用像 hpricot 或 nokogiri 这样的 html 解析库来进行 html 解析,因为可能有很多带有正则表达式的极端情况,直到它在某个地方在生产中运行数月并中断之后才明显!

于 2013-04-23T03:43:49.317 回答
0
require 'nokogiri'

html = '<a href="https://mobile.twitter.com" rel="nofollow">Mobile Web</a>'
elem = Nokogiri::HTML::DocumentFragment.parse(html).child

p elem.text #=> Mobile Web
于 2013-04-23T05:14:12.477 回答
0

前瞻/后瞻将起作用。

val[/(?<=>)(.*)(?=<)/]
于 2013-04-23T02:15:17.910 回答