0

私はRubyで遊んでいますが、正規表現を使用して文字列から何かを減算する際にいくつかの問題があります。

http://mysite.com?test=100?test=100を削除したいこのような文字列があります。これを行うための正規表現は、 rubular\?(.*)に従う必要があります。

試してみまし"http://mysite.com?test=100".sub \?(.*),''たが、次のエラーが発生し続けます。

syntax error, unexpected ')', expecting $end "http://mysite.com?test=100".sub \?(.*),''
4

2 に答える 2

3

あなたはであなたの正規表現を受け入れる必要があります//

1.9.3-p286 :013 > "http://mysite.com?test=100".sub /\?(.*)/, ''
 => "http://mysite.com"

しかしとにかく、私はあなたがそのような場合にこのようなものを使うことを提案します:

require 'uri'
uri = URI.parse("http://mysite.com?test=100")
uri.host # => mysite.com
uri.scheme # => http
于 2013-02-16T15:26:21.500 に答える
3

これを行うには、 Rubyの標準ライブラリのURIなどのライブラリを実際に使用する必要があります。

require 'uri'
uri = URI.parse 'http://mysite.com?test=100'
uri.query = nil
uri.to_s  #=> "http://mysite.com"
于 2013-02-16T15:30:38.917 に答える