Bruke regulære uttrykk

Ruby:
Bruke regulære uttrykk

Hvordan:

Grunnleggende matching

For å matche en streng mot et enkelt mønster, kan du bruke match-metoden. Nedenfor sjekker vi om ordet “Ruby” finnes i en gitt streng.

if /Ruby/.match("Hei, Ruby!")
  puts "Match funnet!"
end
# Output: Match funnet!

Mønstermatching med Variabler

Du kan interpolere variabler i regexen din ved å bruke #{}-syntaksen, noe som gjør mønstrene dine dynamiske.

language = "Ruby"
if /#{language}/.match("Programmering i Ruby er gøy.")
  puts "Snakker om Ruby!"
end
# Output: Snakker om Ruby!

Bruk av Regex til Erstatning

gsub-metoden lar deg erstatte hver forekomst av et mønster med en angitt erstatningsstreng.

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

Fangst

Parenteser i et regex brukes til å fange deler av et treff. match-metoden returnerer et MatchData-objekt, som du kan bruke til å få tilgang til fangster.

match_data = /(\w+): (\d+)/.match("Alder: 30")
puts match_data[1] # Fangstet etikett
puts match_data[2] # Fangstet verdi
# Output:
# Alder
# 30

Bruk av Tredjepartsbiblioteker

Selv om Rubys standardbibliotek er kraftfullt, kan du noen ganger trenge mer spesialisert funksjonalitet. Et populært gem for arbeid med regex er Oniguruma, som tilbyr ytterligere regex-funksjoner utover den innebygde Ruby regex-motoren.

Installer det ved å bruke:

gem install oniguruma

Eksempelbruk kan se ut som dette (forutsatt at du har krevd oniguruma etter installasjon):

# Dette er et mer avansert eksempel og kan kreve ytterligere oppsett
require 'oniguruma'

mønster = Oniguruma::ORegexp.new('(\d+)')
match_data = mønster.match("Tallet er 42.")
puts match_data[1]
# Output: 42

Husk, selv om de er kraftfulle, kan regulære uttrykk bli komplekse og vanskelige å håndtere for mer kompliserte mønstre. Sikte på lesbarhet, og vurder alternative metoder hvis regexen din blir for innviklet.