Ruby:
Karakters verwijderen die overeenkomen met een patroon
Hoe te:
# Eenvoudige verwijdering met String#gsub
voorbeeld = "Hallo, #Wereld!"
schoon_voorbeeld = voorbeeld.gsub(/#/, '') # => "Hallo, Wereld!"
puts schoon_voorbeeld # Uitvoer: Hallo, Wereld!
# Het verwijderen van een reeks tekens
reeks_voorbeeld = "D1t is 2 een voorbeeld3."
schoon_reeks = reeks_voorbeeld.gsub(/[0-9]/, '') # => "Dit is een voorbeeld."
puts schoon_reeks # Uitvoer: Dit is een voorbeeld.
# Verwijderen met String#delete
verwijder_voorbeeld = "Verwijder klinkers uit deze zin."
schoon_verwijder = verwijder_voorbeeld.delete('aeiou') # => "Vrwjdr klnkrs t dz zn."
puts schoon_verwijder # Uitvoer: Vrwjdr klnkrs t dz zn.
Diepgaand Onderzoek
Historisch gezien is Ruby een taal geweest met een sterke focus op tekstverwerking, waarbij het enkele van zijn filosofieën van Perl heeft overgenomen. Daarom geeft het je gereedschappen zoals gsub
en delete
direct uit de doos.
gsub
staat voor globale vervanging. Het wordt vaak gebruikt om delen van strings die overeenkomen met een patroon (reguliere expressie) te vervangen door een andere string. Wanneer het een lege vervangingsstring krijgt, verwijdert het effectief de overeenkomende karakters.
delete
is minder flexibel dan gsub
, maar sneller wanneer je gewoon specifieke karakters wilt verwijderen. Je kunt geen reguliere expressies gebruiken met delete
, maar voor eenvoudige karaktersverwijdering is het de voor de hand liggende keuze.
Er zijn echter andere manieren om deze kat te villen. Bibliotheken als scan
en split
kunnen strings ontleden, en je kunt ze vervolgens weer in elkaar zetten zonder de ongewenste karakters. Maar voor het direct verwijderen van karakters zijn gsub
en delete
je beste maatjes.
Zie Ook
- Ruby’s
gsub
documentatie: Ruby Doc gsub - Ruby’s
delete
documentatie: Ruby Doc delete - Regelmatige Expressies in Ruby: Ruby Regexp
- “Programming Ruby: The Pragmatic Programmer’s Guide” voor een diepgaande blik op Ruby’s tekstverwerkingscapaciteiten.