Ruby:
Att använda reguljära uttryck
Hur man gör:
Grundläggande Matchning
För att matcha en sträng mot ett enkelt mönster kan du använda metoden match
. Nedan kontrollerar vi om ordet “Ruby” finns i en given sträng.
if /Ruby/.match("Hej, Ruby!")
puts "Matchning hittad!"
end
# Utmatning: Matchning hittad!
Mönstermatchning med Variabler
Du kan interpolera variabler i ditt regex med #{}
-syntaxen, vilket gör dina mönster dynamiska.
språk = "Ruby"
if /#{språk}/.match("Att programmera i Ruby är roligt.")
puts "Pratar om Ruby!"
end
# Utmatning: Pratar om Ruby!
Använda Regex för Substitution
Metoden gsub
låter dig ersätta varje förekomst av ett mönster med en specificerad ersättningssträng.
puts "foobarfoo".gsub(/foo/, "bar")
# Utmatning: barbarbar
Fånga
Parenteser i ett regex används för att fånga delar av en matchning. Metoden match
returnerar ett MatchData
-objekt, som du kan använda för att komma åt fångster.
match_data = /(\w+): (\d+)/.match("Ålder: 30")
puts match_data[1] # Fångad etikett
puts match_data[2] # Fångat värde
# Utmatning:
# Ålder
# 30
Använda Tredjepartsbibliotek
Även om Rubys standardbibliotek är kraftfullt kan du ibland behöva mer specialiserad funktionalitet. Ett populärt gem för att arbeta med regex är Oniguruma
, som erbjuder ytterligare regexfunktioner utöver Rubys inbyggda regexmotor.
Installera det med:
gem install oniguruma
Ett exempel på användning kan se ut så här (förutsatt att du har krävt oniguruma
efter att ha installerat det):
# Detta är ett mer avancerat exempel och kan kräva ytterligare inställningar
require 'oniguruma'
mönster = Oniguruma::ORegexp.new('(\d+)')
match_data = mönster.match("Numret är 42.")
puts match_data[1]
# Utmatning: 42
Kom ihåg, även om kraftfulla kan reguljära uttryck bli komplexa och svårhanterliga för mer komplicerade mönster. Sträva efter läsbarhet och överväg alternativa metoder om ditt regex blir för invecklat.