2011-07-26 96 views
2

我有一個字符串:如何切串紅寶石

до 100(прошло до 15 лет) 
до 100 (прошло от 15 лет) 
до 75 
до 100 (10 лет) 
до 100 (10 лет) 

我希望削減串像

до 100 
до 100 
до 75 
до 100 
до 100 
+1

+1問關於使用它們的正則表達式! (即不用於解析XHTML或URL) –

回答

7
strings = ['до 100(прошло до 15 лет)', 
      'до 100 (прошло от 15 лет)', 
      'до 75', 
      'до 100 (10 лет)', 
      'до 100 (10 лет)'] 

strings.map! { |str| str[/до \d+/] } 

p strings #=> ["до 100", "до 100", "до 75", "до 100", "до 100"] 
5

如何像:

cut = full.match(/^до \d*/)[0] 

...這是,匹配錨定字符串的起始字符до,後跟任意數量的數字;返回整個匹配的部分。

6

這有幾種不同的方法。例如,如果字符串中有一個,可以從第一個(開始切斷字符串。不過,我喜歡這更明確的正則表達式的方法:的до

regex = /^до \d+/ 
str = "до 100(прошло до 15 лет)" 
result = str[regex] # "до 100" 

正則表達式匹配/^до \d+/實例和一系列發生在該字符串的開頭數字。如果不存在匹配,語法str[regex]返回第一個(在這種情況下,僅此)匹配,或返回nil

+0

+1 - 我總是忘記'str [/ regexp /]'語法(並且你比Victor更全面地解釋它)! – Chowlett