Att använda reguljära uttryck

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.