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

您真的应该使用库来执行此操作,例如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 回答
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 回答