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: barbarbarFangst
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
# 30Bruk 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 onigurumaEksempelbruk 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: 42Husk, 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.