Tekst zoeken en vervangen

Ruby:
Tekst zoeken en vervangen

Hoe te:

Ruby maakt het makkelijk. Gebruik gsub om tekst wereldwijd te vervangen, of sub voor een enkele instantie. Hier is een snelle blik:

# Oorspronkelijke string
phrase = "Hallo, wereld!"

# Vervang 'wereld' door 'Ruby'
puts phrase.gsub('wereld', 'Ruby')
# => Hallo, Ruby!

# Vervang alleen eerste voorkomen van 'l'
puts phrase.sub('l', '7')
# => Ha7lo, wereld!

De uitvoer? De eerste afdruk toont "Hallo, Ruby!", de tweede geeft "Ha7lo, wereld!".

Diepgaande Duik

De methoden gsub en sub zijn al vroeg in de dagen van Ruby aanwezig, als spiegeling van het vervangingsconcept uit oudere talen zoals Perl. Alternatieven? Zeker, je zou een regex kunnen gebruiken voor meer complexe patronen, of zelfs split en join aan elkaar knopen als je je handig voelt.

Wat cool is, is Ruby’s mogelijkheid om blokken te gebruiken met gsub. In plaats van een simpele zoek-en-vervang, kun je wat zwaarder werk verrichten binnen dat blok:

# Elk woord met een hoofdletter
puts "maak mij mooi".gsub(/\b\w/) { |match| match.upcase }
# => Maak Mij Mooi

Waarom deze moeite? Om te beginnen laat het gebruik van regex met gsub je toe om genuanceerde gevallen aan te pakken waar je meer finesse nodig hebt dan simpelweg ‘vind dit, vervang met dat’.

Zie Ook

Scherp die vaardigheden aan - duik in de documentatie of bekijk deze bronnen:

Begrepen? Goed. Ga nu maar spelen met wat strings.