0

醜い複雑なURL文字列の配列があり、「example」などのユーザーが入力した特定の検索用語をから分離したいと思いますhttp://google.com/search/things/q="example"

+場合によっては、用語を区切る検索があり、ユーザー指定のクエリの最後にがあります&

たくさんグーグルした後でも、どこから始めればいいのかわからない。私を始めるのに助けがあれば大歓迎です!

4

3 に答える 3

5
CGI.parse(URI.parse(url).query)

例:

>> CGI.parse(URI.parse("http://google.com/?foo=bar&baz=hello").query)
=> {"foo"=>["bar"], "baz"=>["hello"]}

cgiもちろん、uri最初に要求することを忘れないでください。

于 2012-07-18T21:26:29.957 に答える
0

あなたはおそらくこのようなものが欲しいでしょう:http://codefol.io/posts/9-How-Does-Rack-Parse-Query-Params-With-parse-nested-query

Rackベースのフレームワーク(SinatraやRailsなど)を使用している場合は、すでにこれを無料で利用できます。

于 2012-07-18T21:24:32.040 に答える
0

Addressable :: URI gemとRuby独自のURIモジュールはどちらも、必要なことを実行できます。または、独自のURIを簡単に作成することもできます。

Addressable :: URIは非常に強力で、URI仕様に準拠しています。PRY内からの使用例を次に示します。

[9] (pry) main: 0> uri = Addressable::URI.parse('http://google.com/search/things?q="example"')
=> #<Addressable::URI:0x80ec33a0 URI:http://google.com/search/things?q="example">
[10] (pry) main: 0> uri.query
=> "q=\"example\""
[11] (pry) main: 0> uri.query_values
=> {"q"=>"\"example\""}

特に便利なのはquery_values、ハッシュを返すメソッドです。

ただし、同じことを行うものを簡単に書くことができます。

Hash['http://google.com/search/things?q="example"'.split('?').last.split('&').map{ |q| q.split('=') }]
=> {"q"=>"\"example\""}

Addressable :: URIとURIの利点は、URLを操作しなくても操作できる他の多くの機能を提供することです。

于 2012-07-18T21:56:12.633 に答える