我读过[this] [1]和[this] [2],但他们并没有完全回答我的问题。
假设我有以下产品名称&代码:
Cool Product 9000 (CP9000)
我想剥离最后一个空格以及之后的所有内容,只剩下:
Cool Product 9000
我将如何实现这一目标?
如果你知道那里会有解释这个的指南或教程,请随意指出我。
编辑:如果我的原始问题有点不清楚,我表示歉意。我很感谢所有的答案,我会测试它们,看看我最喜欢哪一个作为答案。
答案 0 :(得分:5)
这应该做:
string.sub!(/\s+\S*$/, '')
但是,对于括号内的善良,您也可以这样做:
string.sub!(/\s+\(.*?$/, '')
它将捕获(而不是捕获)@Phrogz给出的示例:
foo bar baz
不会被更改
foo bar (bar baz)
将变为
foo bar
答案 1 :(得分:3)
s = 'Cool Product 9000 (CP9000)'
s[0...s.rindex(" ")]
# => "Cool Product 9000"
答案 2 :(得分:2)
与OMG的方法相同,但修改s
本身:
s = 'Cool Product 9000 (CP9000)'
s[s.rindex(' ')..-1] = ''
s
# => "Cool Product 9000"
答案 3 :(得分:1)
stripped = string.sub /\s*\([^)]+\)\z/, ''
那说:
\s*
\(
[^)]+
\)
\z
并替换为零。