我有一个非常简单的字符串,我想在Ruby中,并试图找到最完美的解决方案来解析。 该字符串格式/xyz/mov/exdaf/daeed.mov?arg1=blabla&arg2=3bla3bla的
我想拥有的是:字符串1:/xyz/mov/exdaf/daeed.mov字符串2:ARG1 =布拉布拉&ARG2 = 3bla3bla
所以基本上tokenise吗?
但不能找到一个很好的例子。 任何帮助,将不胜感激。
我有一个非常简单的字符串,我想在Ruby中,并试图找到最完美的解决方案来解析。 该字符串格式/xyz/mov/exdaf/daeed.mov?arg1=blabla&arg2=3bla3bla的
我想拥有的是:字符串1:/xyz/mov/exdaf/daeed.mov字符串2:ARG1 =布拉布拉&ARG2 = 3bla3bla
所以基本上tokenise吗?
但不能找到一个很好的例子。 任何帮助,将不胜感激。
各执问号的初始字符串。
str.split("?")
=> ["/xyz/mov/exdaf/daeed.mov", "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
使得在这种情况下,更多的意义虽然)。
这似乎正是您所渴望的,串内置分割功能:
"abc?def".split("?") => ["abc", "def"]
编辑 :呸,要慢;)