如何在Ruby中替换字符串中单词的每个区分大小写的实例?

时间:2014-04-04 16:14:24

标签: ruby regex

我正在进行一项练习,要求我做以下事情:

给定一个字符串,伤感每个实例替换开心。你必须考虑sad是否大写,大写等。

好的,当“伤心”时,这很容易。没有资本化:

def sub_sad_for_happy(string)
  string.gsub('sad', 'happy')
end

sad_string = "Pierrot is sad."

sub_sad_for_happy(sad_string) # => "Pierrot is happy."

但是,如果悲伤被大写了怎么办?

1 个答案:

答案 0 :(得分:4)

使用/i修饰符很容易处理ruby正则表达式中的忽略大小写。另请注意,我已将正则表达式放在//

string.gsub(/sad/i, 'happy')

现在,如果您只想将s保留为两种情况,那么请使用字符类。 [sS]表示sS

string.gsub(/[sS]ad/, 'happy')