我有字符串:
до 100(прошло до 15 лет)
до 100 (прошло от 15 лет)
до 75
до 100 (10 лет)
до 100 (10 лет)
我想剪切像
这样的字符串до 100
до 100
до 75
до 100
до 100
答案 0 :(得分:7)
strings = ['до 100(прошло до 15 лет)',
'до 100 (прошло от 15 лет)',
'до 75',
'до 100 (10 лет)',
'до 100 (10 лет)']
strings.map! { |str| str[/до \d+/] }
p strings #=> ["до 100", "до 100", "до 75", "до 100", "до 100"]
答案 1 :(得分:6)
有几种不同的方法。例如,如果字符串有一个字符串,则可以从第一个(
开始剪切字符串。但是,我喜欢这种更明确的正则表达式方法:
regex = /^до \d+/
str = "до 100(прошло до 15 лет)"
result = str[regex] # "до 100"
正则表达式/^до \d+/
匹配до
的实例和字符串开头出现的一系列数字。语法str[regex]
返回第一个(仅在此情况下)匹配,如果没有匹配则返回nil
。
答案 2 :(得分:5)
如下:
cut = full.match(/^до \d*/)[0]
...也就是说,匹配锚定到字符串开头的字符до
,后跟任意数量的数字;返回整个匹配的部分。