一致する式に問題があります。私は鋸山を使用して抽出されたリンクから「コード」パラメータを抽出したいので、私は試してみました:正規表現パターンを使用してURLからパラメータを抽出する方法
event_id = a.attr("href").match(/\?code=(\d+)/)[1]
は、残念ながら何を抽出することは、全体のクエリ文字列です:
?code=768140119
適切な方法は何ですかパラメータの値を取得するだけで何もありませんか?
一致する式に問題があります。私は鋸山を使用して抽出されたリンクから「コード」パラメータを抽出したいので、私は試してみました:正規表現パターンを使用してURLからパラメータを抽出する方法
event_id = a.attr("href").match(/\?code=(\d+)/)[1]
は、残念ながら何を抽出することは、全体のクエリ文字列です:
?code=768140119
適切な方法は何ですかパラメータの値を取得するだけで何もありませんか?
正規表現を使用しないでください。十分にテストされたホイールを使用してください。
RubyのURIクラスがdecode_www_form
特に、あなたの友達です:
require 'uri'
uri = URI.parse('http://foo.com?code=768140119')
uri.query # => "code=768140119"
URI.decode_www_form(uri.query) # => [["code", "768140119"]]
URI.decode_www_form(uri.query).to_h # => {"code"=>"768140119"}
、鋸山はちょうどハッシュのようなノードを扱い、それが容易になります:
require 'nokogiri'
doc = Nokogiri::HTML("
<html>
<body>
<a href='path/to/foo'>bar</a>
</body>
</html>
")
doc.at('a')['href'] # => "path/to/foo"
attr(...)
と入力して時間を浪費する必要はありません。
URLは相対的なものです(例: "../results?code=abcde")。これはまだ相対URLで動作しますか? – Dave
何を試しましたか? "[どのくらいの研究努力がStack Overflowユーザーに期待されていますか?](http://meta.stackoverflow.com/a/261593/128421)"が重要です。 –
'a.attr(" href ")[/ \?code =(\ d +)/、1]'を使用すると、あるいは単にa.attr( "href")[/ \ d + /] '(1つ以上の数字のシーケンスが1つしかない場合)? –
また、 'a [" href "] [/ \ d + /]'を試してください –
入力と出力を表示できますか?あなたは本当に試合の[1]にアクセスしていますか? –