Säännöllisten lausekkeiden käyttö

Ruby:
Säännöllisten lausekkeiden käyttö

Kuinka:

Perusvastaavuus

Merkkijonon vastaavuuden tarkistamiseen yksinkertaisen mallin kanssa voi käyttää match-metodia. Alla tarkistamme, löytyykö sana “Ruby” annetusta merkkijonosta.

if /Ruby/.match("Hei, Ruby!")
  puts "Vastaavuus löytyi!"
end
# Tuloste: Vastaavuus löytyi!

Mallivastaavuus muuttujien kanssa

Voit sisällyttää muuttujia regexiisi käyttämällä #{}-syntaksia, tehdessäsi malleistasi dynaamisia.

kieli = "Ruby"
if /#{kieli}/.match("Ohjelmointi Rubylla on hauskaa.")
  puts "Puhutaan Rubysta!"
end
# Tuloste: Puhutaan Rubysta!

Regexin käyttö korvaamiseen

gsub-metodi mahdollistaa jokaisen mallia vastaavan esiintymän korvaamisen määritellyllä korvaavalla merkkijonolla.

puts "foobarfoo".gsub(/foo/, "bar")
# Tuloste: barbarbar

Kaappaaminen

Sulkeita regexissa käytetään osien kaappaamiseen vastaavuudesta. match-metodi palauttaa MatchData-objektin, jota voit käyttää kaappausten saavuttamiseen.

match_data = /(\w+): (\d+)/.match("Ikä: 30")
puts match_data[1] # Kaapattu otsikko
puts match_data[2] # Kaapattu arvo
# Tuloste:
# Ikä
# 30

Kolmannen osapuolen kirjastojen käyttö

Vaikka Rubyn vakio kirjasto onkin tehokas, saatat joskus tarvita erikoistuneempaa toiminnallisuutta. Yksi suosittu gem regexin kanssa työskentelyyn on Oniguruma, joka tarjoaa lisäominaisuuksia Rubyn sisäänrakennettuun regex-moottoriin nähden.

Asenna se käyttäen:

gem install oniguruma

Esimerkki käytöstä voisi näyttää tältä (olettaen, että olet vaatinut oniguruman asentamisen jälkeen):

# Tämä on kehittyneempi esimerkki ja saattaa vaatia lisäasetuksia
require 'oniguruma'

malli = Oniguruma::ORegexp.new('(\d+)')
match_data = malli.match("Numero on 42.")
puts match_data[1]
# Tuloste: 42

Muista, vaikka säännölliset lausekkeet ovat voimakkaita, ne voivat muuttua monimutkaisiksi ja vaikeasti hallittaviksi monimutkaisemmissa malleissa. Tavoittele luettavuutta ja harkitse vaihtoehtoisia menetelmiä, jos regexisi muuttuu liian monimutkaiseksi.