2012-07-17 56 views
2

我試圖從一個四方的URL拉USER_ID發現,像這樣的:設置字符串等於匹配Rails的正則表達式

https://foursquare.com/user/99999999 

下面的正則表達式拉正是我需要的東西(一組數字,終止與行末):

\d+$ 

但是,我不知道如何設置字符串等於匹配的字符。我知道sub和gsub,但這些方法用一個匹配的字符串替代別的東西。

我正在尋找一種方式來專門拉符合我正則表達式(如果存在)的字符串的部分

回答

7

我喜歡用匹配的回報():

任何包裹在一個捕捉()在正則表達式,被分配到了比賽結果數組

"https://foursquare.com/user/99999999".match(/(\d+)\z/)[1] #=> "99999999" 
+0

非常棒!萬分感謝。 – 2012-07-17 22:45:19

5
>> "https://foursquare.com/user/99999999"[/(\d+)\z/, 1] 
=> "99999999" 

>> "https://foursquare.com/user/99999999" =~ /(\d+)\z/ 
=> 28 
>> $1 
=> "99999999" 

>> "https://foursquare.com/user/99999999".split('/').last 
=> "99999999" 

方法有很多種。我個人很喜歡String#[]雖然

+0

饒有看到有這樣做的多種方式。出於好奇,你能解釋第二個的語法嗎? – 2012-07-17 22:46:45

+1

http://www.ruby-doc.org/core-1.9.3/String.html#method-i-3D-7E 捕獲存儲在$ 1到$ 9 – 2012-07-17 22:49:23

+0

有用的信息。非常感謝你。 – 2012-07-17 22:51:25

相關問題