Littéraux Regex et correspondance
Faites correspondre des motifs avec le type Regex.
Littéraux Regex et correspondance est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 4 leçons au total.
Les expressions régulières dans Swift
Swift 5.7+ propose des expressions régulières natives dans la bibliothèque standard et Foundation. Vous pouvez écrire une expression régulière sous forme de littéral entre des barres obliques, comme /\d+/, et le compilateur la vérifie lors de la compilation.
Un littéral d’expression régulière
Un littéral d’expression régulière produit une valeur Regex. Son type capture ce que la correspondance renvoie. Le motif le plus simple correspond à une séquence fixe de caractères.
let pattern = /hello/
if "hello world".contains(pattern) {
print("Found hello")
}wholeMatch(of:)
wholeMatch(of:) réussit uniquement si la chaîne entière correspond au motif. Il renvoie une correspondance facultative, ou nil si la chaîne entière ne correspond pas.
let digits = /\d+/
if let m = "12345".wholeMatch(of: digits) {
print("Whole match: \(m.output)")
} else {
print("No whole match")
}firstMatch(of:)
firstMatch(of:) parcourt la chaîne et renvoie le premier emplacement où le motif correspond.
let word = /\w+/
if let m = " swift rocks".firstMatch(of: word) {
print("First word: \(m.output)")
}Accéder à la plage de la correspondance
Une correspondance expose une range dans la chaîne d’origine, ce qui vous permet de savoir exactement où elle s’est produite.
let text = "abc123def"
if let m = text.firstMatch(of: /\d+/) {
print("Matched: \(m.output)")
print("At: \(text[m.range])")
}Classes de caractères
Dans un motif, \d correspond à un chiffre, \w à un caractère de mot et \s aux espaces blancs. Les crochets définissent un ensemble personnalisé comme [aeiou].
let vowel = /[aeiou]/
if let m = "sky".firstMatch(of: vowel) {
print("Vowel: \(m.output)")
} else {
print("No vowels found")
}Quantificateurs
Les quantificateurs contrôlent la répétition : * signifie zéro ou plusieurs occurrences, + une ou plusieurs, ? une occurrence facultative et {n,m} un nombre limité d’occurrences.
let phone = /\d{3}-\d{4}/
print("555-1234".wholeMatch(of: phone) != nil)
print("12-34".wholeMatch(of: phone) != nil)Ancres
Utilisez ^ pour ancrer le motif au début d’une ligne et $ à sa fin. Les ancres ne consomment aucun caractère ; elles affirment une position.
let startsWithCap = /^[A-Z]\w*/
if let m = "Swift".firstMatch(of: startsWithCap) {
print("Matched: \(m.output)")
}Correspondance insensible à la casse
Vous pouvez ignorer la casse en ajoutant .ignoresCase() à une valeur d’expression régulière, ce qui est utile lorsque la casse de l’entrée est imprévisible.
let pattern = /swift/.ignoresCase()
print("I love SWIFT".contains(pattern))Effectuer des correspondances avec matches(of:)
matches(of:) renvoie une collection de toutes les correspondances non chevauchantes dans la chaîne, ce qui vous permet de les parcourir toutes.
let nums = "a1 b22 c333"
for m in nums.matches(of: /\d+/) {
print(m.output)
}Valider l’entrée
Une utilisation courante est la validation : construisez un motif correspondant au format complet attendu, puis vérifiez-le avec wholeMatch, qui renvoie nil en cas de différence.
func isZip(_ s: String) -> Bool {
s.wholeMatch(of: /\d{5}/) != nil
}
print(isZip("90210"))
print(isZip("ABCDE"))Vérification rapide
Quelle méthode réussit uniquement lorsque la chaîne entière correspond ?
Récapitulatif
Vous avez appris à écrire des littéraux d’expressions régulières avec des barres obliques et à effectuer des correspondances avec wholeMatch(of:), firstMatch(of:) et matches(of:). Vous avez également découvert les classes de caractères, les quantificateurs, les ancres et la correspondance insensible à la casse. Ensuite, vous extrairez des données des correspondances à l’aide de groupes capturants.
Questions Fréquemment Posées
La leçon « Littéraux Regex et correspondance » est-elle gratuite ?
Oui — le texte complet de « Littéraux Regex et correspondance » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Littéraux Regex et correspondance » ?
Faites correspondre des motifs avec le type Regex. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Swift Academy ?
Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Littéraux Regex et correspondance » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?
Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Littéraux Regex et correspondance
- Groupes de capture
- DSL RegexBuilder
- Remplacer et découper du texte