How To Replace In Ruby

Replacing characters or words in a string is a common task when working with text data. In this blog post, we will explore different ways to replace text in Ruby. Let’s dive in!

1. Using the gsub method

The gsub method is short for ‘global substitution’. It provides an easy way to replace all occurrences of a pattern in a string. The method takes two arguments: the pattern to search for and the replacement text. The pattern can be a string or a regular expression. Here’s how to use it:

text = "Hello, world! How are you, world?"
replaced_text = text.gsub("world", "universe")
puts replaced_text
# Output: "Hello, universe! How are you, universe?"

If you want to use regular expressions, just pass a regex pattern as the first argument:

text = "I have 5 apples and 3 oranges."
replaced_text = text.gsub(/\d+/, "many")
puts replaced_text
# Output: "I have many apples and many oranges."

2. Using the gsub! method

The gsub! method works the same way as the gsub method, but it modifies the original string instead of creating a new one:

text = "Hello, world! How are you, world?"
text.gsub!("world", "universe")
puts text
# Output: "Hello, universe! How are you, universe?"

3. Using the sub method

If you only want to replace the first occurrence of a pattern, you can use the sub method. It works the same way as gsub, but only replaces the first match:

text = "Hello, world! How are you, world?"
replaced_text = text.sub("world", "universe")
puts replaced_text
# Output: "Hello, universe! How are you, world?"

4. Using the sub! method

Similarly to the gsub! method, the sub! method modifies the original string, replacing only the first occurrence of the pattern:

text = "Hello, world! How are you, world?"
text.sub!("world", "universe")
puts text
# Output: "Hello, universe! How are you, world?"

Conclusion

In this blog post, we learned how to replace text in Ruby using the gsub, gsub!, sub, and sub! methods. These methods provide a powerful and flexible way to manipulate strings in Ruby. Happy coding!