我知道这是一个简单的问题,但我想用rails提取字符串的一部分。 通过了解字符串的开头和结尾字符并提取它,我会像Java那样做,但我想用ruby方式做到这一点,这就是我需要你帮助的原因。
我的字符串是:
<a href="javascript:launchRemote('99999','C')">STACK OVER AND FLOW </a>
我希望引号之间的数值=&gt; 99999
和link =&gt;的值STACK OVER AND FLOW
我应该如何在ruby中解析这个字符串?
感谢。
答案 0 :(得分: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"
答案 1 :(得分: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
答案 2 :(得分: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"]