搜索和替换文本

Ruby:
搜索和替换文本

How to: (怎么做?)

Ruby 提供了简单的方法来搜索和替换字符串。比如 gsub 方法:

original_string = "Hello, world! Ruby is fun."
# Return a new string with all occurrences of 'world' replaced by 'Mandarin readers'
new_string = original_string.gsub('world', 'Mandarin readers')
puts new_string
# => "Hello, Mandarin readers! Ruby is fun."

你也可以用正则表达式来匹配模式:

# Replace any word that starts with 'f' with 'Ruby'
fancy_string = "Fancy Fridays are fun for friends."
puts fancy_string.gsub(/\bf\w*/, 'Ruby')
# => "Ruby Ruby are Ruby for Ruby."

Deep Dive (深入探究)

在 Ruby 早期版本中,subgsub 方法就被引入,它们是搜索和替换的基础工具。sub 替换第一个匹配的字符串,而 gsub 替换所有匹配的字符串。

其他语言有类似的函数,比如 Python 的 replace 和 JavaScript 的 replace

执行替换时,如果只是修改原字符串用 gsub!sub! 会更快。

Ruby 的正则表达式是一个强大的工具,可以用来定义复杂的搜索模式,比如大小写不敏感或者选择性匹配。

See Also (另请参阅)

  • Ruby 官方文档中关于 String#subString#gsub 的页面。
  • Regexp 文档,详细介绍了正则表达式的使用。
  • Rubular 一个基于 Ruby 正则表达式的测试工具。