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.