我正在使用Ruby,但我有一些问题,使用正则表达式从字符串中减去一些东西。
我有一个像http://mysite.com?test=100
这样的字符串,我想删除?test = 100。根据{{3}},执行此操作的正则表达式应为\?(.*)
。
我尝试使用"http://mysite.com?test=100".sub \?(.*),''
,但我一直收到以下错误:
syntax error, unexpected ')', expecting $end "http://mysite.com?test=100".sub \?(.*),''
答案 0 :(得分: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
答案 1 :(得分:3)
您应该使用库来执行此操作,例如Ruby的标准库中的URI:
require 'uri'
uri = URI.parse 'http://mysite.com?test=100'
uri.query = nil
uri.to_s #=> "http://mysite.com"