我有一个非常简单的字符串,我想用ruby解析,并试图找到最优雅的解决方案。字符串格式
/xyz/mov/exdaf/daeed.mov?arg1=blabla&arg2=3bla3bla

我想拥有的是:
字符串1:/xyz/mov/exdaf/daeed.mov
字符串2:arg1 = blabla&arg2 = 3bla3bla

所以基本上代币化了吗?

但找不到一个很好的例子。
任何帮助,将不胜感激。

最佳答案

我认为最好的解决方案是使用URI模块。 (您可以执行URI.parse('your_uri_string').query之类的操作来将部分移到?的右侧。)请参阅http://www.ruby-doc.org/stdlib/libdoc/uri/rdoc/

例子:

002:0> require 'uri' # or even 'net/http'
true
003:0> URI
URI
004:0> URI.parse('/xyz/mov/exdaf/daeed.mov?arg1=bla&arg2=asdf')
#<URI::Generic:0xb7c0a190 URL:/xyz/mov/exdaf/daeed.mov?arg1=bla&arg2=asdf>
005:0> URI.parse('/xyz/mov/exdaf/daeed.mov?arg1=bla&arg2=asdf').query
"arg1=bla&arg2=asdf"
006:0> URI.parse('/xyz/mov/exdaf/daeed.mov?arg1=bla&arg2=asdf').path
"/xyz/mov/exdaf/daeed.mov"

否则,您可以捕获一个正则表达式:/^(.*?)\?(.*?)$/。然后$1$2是您想要的。 (URI在这种情况下更有意义。)

关于ruby - 在Ruby中解析URL字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1208137/

10-12 19:59