1

これは簡単な質問だと思いますが、レールを使用して文字列の一部を抽出したいと考えています。文字列の先頭と末尾の文字を知って抽出することで、Javaのようにこれを行いますが、ルビーの方法でこれを行いたいので、あなたの助けが必要です。

私の文字列は次のとおりです。

<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

文字列にリンクが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 に答える