Ruby中的条件正则表达式字符串替换(在Rails上)

时间:2014-01-03 19:49:49

标签: ruby-on-rails ruby regex

我有一个字符串,可以是

create

create by

取决于动词等。在Ruby(on Rails)中获取过去时

string.sub(/e?$/, "ed") 

string.sub(/ by?$/, "ed by") 

有效,但有没有办法将两者结合起来?使用某种类型的条件语句或类似的。

2 个答案:

答案 0 :(得分:5)

使用单词边界(\b):

'create by'.sub(/e\b/, 'ed')
# => "created by"
'create'.sub(/e\b/, 'ed')
# => "created"

答案 1 :(得分:3)

为什么不呢?

2.1.0-preview2 :046 > 'create'.sub('create', 'created')
 => "created"
2.1.0-preview2 :047 > 'create by'.sub('create', 'created')
 => "created by"

没有正则表达式......)