1

我知道这是一个简单的问题,但我想用导轨提取字符串的一部分。我会像 Java 一样通过知道字符串的开始和结束字符并提取它来做到这一点,但我想通过 ruby​​ 方式来做到这一点,这就是我需要你帮助的原因。

我的字符串是:

<a href="javascript:launchRemote('99999','C')">STACK OVER AND FLOW             </a>

我想要引号之间的数值=>99999和链接的值=>STACK OVER AND FLOW

我应该如何在 ruby​​ 中解析这个字符串?

谢谢。

4

3 回答 3

3

如果需要解析html:

> require 'nokogiri'
> str = %q[<a href="javascript:launchRemote('99999','C')">STACK OVER AND FLOW</a>]
> doc = Nokogiri.parse(str)
> link = doc.at('a')
> link.text
=> "STACK OVER AND FLOW"
> link['href'][/(\d+)/, 1]
=> "99999"

http://nokogiri.org/

于 2013-01-28T20:19:50.043 回答
1

如果您在字符串中只有一个链接,这应该可以工作

str = %{<a href="javascript:launchRemote('99999','C')">STACK OVER AND FLOW             </a>}
num = str.match(/href=".*?'(\d*)'.*?/)[1].to_i
name = str.match(/>(.*?)</)[1].strip
于 2013-01-28T19:42:48.950 回答
0

一次获得两者的方法:

str = "<a href=\"javascript:launchRemote('99999','C')\">STACK OVER AND FLOW         </a>"
num, name = str.scan(/launchRemote\('(\d+)'[^>]+>\s*(.*?)\s*</).first
# => ["99999", "STACK OVER AND FLOW"]
于 2013-01-28T20:59:27.693 回答