我已经阅读了 [this][1] 和 [this][2],但他们并没有完全回答我的问题。
假设我有以下产品名称和代码:
Cool Product 9000 (CP9000)
我想去掉最后一个空格和它之后的所有内容:
Cool Product 9000
我将如何做到这一点?
如果您知道可以解释这一点的指南或教程,请随时向我指出。
编辑:如果我最初的问题有点不清楚,我深表歉意。我很欣赏所有的答案,我会在将其中一个标记为答案之前对它们进行测试,看看我最喜欢哪个。
这应该这样做:
string.sub!(/\s+\S*$/, '')
但是,为了括号内的好处,您也可以这样做:
string.sub!(/\s+\(.*?$/, '')
它将捕获(而不是捕获)@Phrogz 下面给出的示例:
foo bar baz
不会被改变和
foo bar (bar baz)
会变成
foo bar
s = 'Cool Product 9000 (CP9000)'
s[0...s.rindex(" ")]
# => "Cool Product 9000"
与 OMG 的方法相同,但s
会自行修改:
s = 'Cool Product 9000 (CP9000)'
s[s.rindex(' ')..-1] = ''
s
# => "Cool Product 9000"
stripped = string.sub /\s*\([^)]+\)\z/, ''
说的是:
\s*
\(
[^)]+
\)
\z
并用任何东西代替它。