Використання регулярних виразів

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 стає надто заплутаним.