Метод строки gsub - это метод подстановки, очень похожий на инструмент поиска и замены старого текстового документа. Он находит все экземпляры совпадающей строки и заменяет ее новым аргументом.

Метод принимает два аргумента. Первый - это текст, который вы хотите заменить, а второй - новый текст.

Вы также можете использовать его с регулярным выражением, если вам нужна большая гибкость. Например, если вы хотите заменить любое число в строке, а не конкретное число.

Gsub становится по-настоящему интересным, когда вы используете его с блоками. Допустим, на все товары была 20-процентная скидка.

Gsub также принимает хэш в качестве второго аргумента.

Что, если бы мы захотели заменить разные слова в предложении другими значениями и оставить остальную часть предложения в действии. И снова хэш пригодится. Допустим, я хочу повысить уровень членства каждого. Все, кто были Серебряными участниками, теперь являются Золотыми участниками, а все, кто были Бронзовыми участниками, теперь являются Серебряными участниками.

Давайте посмотрим, как это сделать.

Посмотрим, что мы здесь делаем. Во-первых, мы используем регулярное выражение, чтобы найти каждое слово в предложении. Каждое слово передается в блок как аргумент и устанавливается переменная «m». Затем мы вызываем fetch для нашей коллекции хешем членства. В каждом цикле мы передаем в качестве аргумента выборку нашей переменной ‘m’ (текущее слово в предложении). Если совпадение найдено, fetch возвращает значение для этого ключа. Если совпадений нет, возвращается исходное слово. Fetch - отличный метод для использования, потому что мы можем отправить ему два аргумента. Если для ключа нет совпадения, мы возвращаем значение по умолчанию: переменную m .

fetch (ключ [, по умолчанию]) → объект

Вот несколько интересных способов использования gsub