7
votes

expressions régulières remplacent dans iOS

Je vais avoir besoin de remplacer une chaîne sale pour une chaîne propre: xxx

ceci devrait éliminer tous les numéros dans le filtre de sorte que:

@ "importer6652"
céderait @ "importer"

Comment puis-je le faire dans iOS?

Merci!


0 commentaires

5 Réponses :



0
votes

Bien que non via une expression régulière mais que vous pouvez utiliser stringbytrimmingcharactersset

stringbytrimmingcharactersset :
Renvoie une nouvelle chaîne faite par supprimer des deux extrémités des caractères récepteurs contenus dans une donnée ensemble de caractères.

en combinaison avec

décimaldigitcharactterset
Renvoie un ensemble de caractères contenant les caractères de la catégorie de nombres décimaux.

Comme ceci: xxx

CAVEAT : il ne supprimera que les caractères aux deux extrémités.


2 commentaires

Une seule chose à faire attention, cela ne fonctionnera que si les numéros sont sur les bords (c'est-à-dire XXX123 ou 123xxx fonctionnera, mais pas xx123xx). Pour les informations étant donné que cette réponse fonctionne parfaitement, mais je pensais que je partagé de toute façon dans Case OP a d'autres ensembles.


Vous avez raison - a ajouté des informations à ma réponse à la clarifie!



0
votes

dans iOS 4.0+, vous pouvez utiliser nsregularexpression :

Utiliser MatchsSring: Options: Plage: Pour obtenir un tableau de tous les résultats correspondants.

puis les supprimer de la chaîne d'origine


1 commentaires

Vous pourriez, mais pourquoi déranger quand il y a de meilleures fonctions comme celle de la réponse de MSK?



22
votes
do {
    let regex = try NSRegularExpression(pattern: "([0-9]+)", options: NSRegularExpressionOptions.CaseInsensitive)
    regex.replaceMatchesInString(str, options: NSMatchingOptions.ReportProgress, range: NSRange(0,str.characters.count), withTemplate: "")
} catch {}

0 commentaires

1
votes

chaîne de remplacement du code à l'aide de Regex

SWIFT3 strong> p> xxx pré>

Utilisez p>

var string: String = "Import6652"
do {
    let result = try string.replacing(pattern: "[\\d]+", withTemplate: "")
} catch {
    // error
}


0 commentaires