Ruby:
Використання регулярних виразів
Як користуватися:
Базовий пошук
Щоб знайти відповідність рядка з простим шаблоном, ви можете використати метод match
. Нижче ми перевіряємо, чи існує слово “Ruby” у даному рядку.
if /Ruby/.match("Hello, Ruby!")
puts "Знайдено відповідність!"
end
# Вивід: Знайдено відповідність!
Пошук за шаблоном із змінними
Ви можете інтерполювати змінні у ваш regex, використовуючи синтаксис #{}
, що робить ваші шаблони динамічними.
language = "Ruby"
if /#{language}/.match("Програмування на Ruby це весело.")
puts "Говоримо про Ruby!"
end
# Вивід: Говоримо про Ruby!
Використання Regex для Заміни
Метод gsub
дозволяє замінювати кожну появу шаблону на вказаний рядок заміни.
puts "foobarfoo".gsub(/foo/, "bar")
# Вивід: barbarbar
Захоплення
Дужки в regex використовуються для захоплення частин відповідності. Метод match
повертає об’єкт MatchData
, який ви можете використовувати для доступу до захоплених даних.
match_data = /(\w+): (\d+)/.match("Вік: 30")
puts match_data[1] # Захоплена мітка
puts match_data[2] # Захоплене значення
# Вивід:
# Вік
# 30
Використання Сторонніх Бібліотек
Хоча стандартна бібліотека Ruby є потужною, інколи вам може знадобитись більш спеціалізована функціональність. Одним із популярних gem для роботи з regex є Oniguruma
, що надає додаткові можливості regex, яких немає в вбудованому механізмі Ruby regex.
Встановити його можна, використовуючи:
gem install oniguruma
Приклад використання може виглядати так (за умови, що ви підключили oniguruma
після його установки):
# Це більш складний приклад, який може вимагати додаткового налаштування
require 'oniguruma'
pattern = Oniguruma::ORegexp.new('(\d+)')
match_data = pattern.match("Номер є 42.")
puts match_data[1]
# Вивід: 42
Пам’ятайте, незважаючи на потужність, регулярні вирази можуть стати складними та важкими для управління при роботі з більш складними шаблонами. Прагніть до зрозумілості та розглядайте альтернативні методи, якщо ваш regex стає надто заплутаним.