我新的Ruby和我想要做以下動作中的紅寶石,除去最後的「_val3」:如何實現%%到分割字符串像貝殼在紅寶石
$ val="val1_val2_val3"
$ echo ${val%_*}
val1_val2
我用回聲$ {val%_ *}來獲得「val1_val2」,但我不知道如何做到這一點在紅寶石。 另外,如何獲得「val1」? 有沒有一種很好的方法來做到這一點?
我新的Ruby和我想要做以下動作中的紅寶石,除去最後的「_val3」:如何實現%%到分割字符串像貝殼在紅寶石
$ val="val1_val2_val3"
$ echo ${val%_*}
val1_val2
我用回聲$ {val%_ *}來獲得「val1_val2」,但我不知道如何做到這一點在紅寶石。 另外,如何獲得「val1」? 有沒有一種很好的方法來做到這一點?
並不是Ruby的專家,但我會用正則表達式滾動球:
a.sub /_[^_]*$/, ''
匹配下劃線,後跟任意數量的非下劃線字符串的結尾。什麼都不換。
String#rpartition
可能會工作:
'a-b_c_d'.rpartition('_') #=> ["a-b_c", "_", "d"]
rpartition
尋找最後'_'
和後隔板本身和部分在返回之前它包含了部分的數組。
...你在說shell參數擴展中的'%'或'%%'? –
請解釋(用文字)你想做什麼。不是每個人都知道參數替換是如何工作的 – Stefan