如何获得gsub!识别不同的字符(大写,小写)

时间:2015-04-14 00:16:57

标签: ruby gsub

print "Enter your text here:"
user_text = gets.chomp
user_text_2 = user_text.gsub! "Damn", "Darn"
user_text_3 = user_text.gsub! "Shit", "Crap"
puts "Here is your edited text: #{user_text}"

我希望该代码能够识别何时使用Shit和Damn的小写版本并用替换词替换它们。现在它只能识别我用大写的第一个单词输入单词。有没有办法让它识别小写单词,而不添加更多的gsub!代码行?

4 个答案:

答案 0 :(得分:2)

您可以在模式上指定i标志以忽略大小写:

user_text_2 = user_text.gsub! /Damn/i, "Darn"

答案 1 :(得分:1)

只是一个非常简短的解决方案:

user_text.gsub!(/[Dd]amn/, 'Darn')

更通用的方法,如果这是你想要的,是一个i,它使正则表达式不区分大小写。

user_text.gsub!(/damn/i, 'Darn')

答案 2 :(得分:0)

你可以使用正则表达式和i选项来做到这一点,这使得Regexp不区分大小写:

foo = 'foo Foo'

foo.gsub(/foo/, 'bar')
#=> "bar Foo"
foo.gsub(/foo/i, 'bar')  # with i
#=> "bar bar"

答案 3 :(得分:0)

使用正则表达式而不是字符串。所以/damn/i代替"damn".正则表达式末尾的'i'意味着忽略大写。