Karakters verwijderen die overeenkomen met een patroon

Swift:
Karakters verwijderen die overeenkomen met een patroon

Hoe te doen:

import Foundation

// Voorbeeld: Alle cijfers uit een String verwijderen
let originalString = "Contacteer mij op 123-456-7890 na 09:00 PM."
let digitsPattern = "[0-9]"
let resultString = originalString.replacingOccurrences(of: digitsPattern, with: "", options: .regularExpression)

print(resultString)  // Uitvoer: "Contacteer mij op -- na : PM."
// Voorbeeld: Niet-alfanumerieke karakters verwijderen
let messyString = "H3!llo, W%@rld-"
let nonAlphanumericPattern = "[^A-Za-z0-9]"
let cleanString = messyString.replacingOccurrences(of: nonAlphanumericPattern, with: "", options: .regularExpression)

print(cleanString)  // Uitvoer: "H3lloWrld"

Diepgaande duik

Voor Swift en moderne programmering was pattern matching het domein van specifieke tools en talen zoals sed, awk, of Perl, bekend om hun mogelijkheden voor tekstverwerking. Swift, met zijn robuuste Foundation-framework, vereenvoudigt deze taken binnen de taal, waardoor het toegankelijker wordt voor ontwikkelaars.

Een alternatief voor reguliere expressies is het itereren door de string met behulp van Swift’s filter methode gekoppeld aan een aangepaste voorwaarde, wat ook tijdrovend en minder leesbaar kan zijn. Reguliere expressies bieden een compacte, zij het soms cryptische, manier om het patroon dat we willen verwijderen of manipuleren te beschrijven.

Achter de schermen, wanneer je replacingOccurrences(of:with:options:) uitvoert met de optie .regularExpression, gebruikt Swift ICU’s (International Components for Unicode) reguliere expressiemotor om het patroon te verwerken. ICU is een volwassen, veelgebruikte bibliotheek voor Unicode-ondersteuning, inclusief patroonmatching, die is ingebouwd in veel high-level programmeertalen.

Zie ook