2012-11-13 93 views
-1

我正在使用Ruby,並且我想要編寫一個函數,該函數使用分隔字符串str(由//分隔),並返回字符串的最後一部分,即字符串中最後一個//之後的部分。例如,給出a//b///cd,它應該返回cd如何在最終分隔符後提取子字符串?

我可以使用正則表達式來做到這一點,如果是這樣,我應該使用什麼表達式?

+1

這應該是'/.*\/\/(.*)/'。不過,您需要選擇第一個捕獲組。 http://rubular.com/r/k4Ow6WskY2 – nhahtdh

+0

@nhahtdh爲什麼不寫一個簡單的答案,以便用戶可以接受它? – oldergod

+0

@oldergod:隨意採取評論和寫一個,因爲我不知道Ruby本身的語言。 – nhahtdh

回答

2

由於Nhahtdh在他comment寫道:您可以使用/.*\/\/(.*)/

其中在Ruby中,會像

regex = %r{.*    # any character (0 up to infinit-times) till we find the last 
      //    # two consecutive characters '/' 
      (?<last_part>.*) # any character (0 up to infinit-times) 
      } 
string = 'a//b///cd' 

puts regex.match(string)[:last_part] 
#=> cd 

您可以找到有關在ProgrammingRubyRegularExpression部分%r

相關問題