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 早期版本中,sub
和 gsub
方法就被引入,它们是搜索和替换的基础工具。sub
替换第一个匹配的字符串,而 gsub
替换所有匹配的字符串。
其他语言有类似的函数,比如 Python 的 replace
和 JavaScript 的 replace
。
执行替换时,如果只是修改原字符串用 gsub!
或 sub!
会更快。
Ruby 的正则表达式是一个强大的工具,可以用来定义复杂的搜索模式,比如大小写不敏感或者选择性匹配。
See Also (另请参阅)
- Ruby 官方文档中关于 String#sub 和 String#gsub 的页面。
- Regexp 文档,详细介绍了正则表达式的使用。
- Rubular 一个基于 Ruby 正则表达式的测试工具。