我有一个非常简单的字符串,我想用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/