簡體   English   中英

在Ruby中解析URL字符串

[英]Parsing URL string in Ruby

我有一個非常簡單的字符串,我想在ruby中解析並試圖找到最優雅的解決方案。 該字符串的格式為/xyz/mov/exdaf/daeed.mov?arg1=blabla&arg2=3bla3bla

我想要的是:string1:/xyz/mov/exdaf/daeed.mov string2:arg1 = blabla&arg2 = 3bla3bla

所以基本上代表了嗎?

但找不到一個好例子。 任何幫助,將不勝感激。

在問號上拆分初始字符串。

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"]

編輯 :呸,慢;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM