Skip to content
DocsAll
技巧

Expressions régulières en pratique : cas courants de traitement de texte

Timi Tian · Publié le 24 mars 2026 · Mis à jour le 12 juillet 2026
Expressions régulièresRegexTraitement de texte

Trois cas pratiques des regex

Les regex servent concrètement à trois types d'opérations :

  • Validation : vérifier si un texte respecte un format (e-mail, numéro de mobile)
  • Extraction : repérer dans un texte les contenus correspondant à un motif (toutes les URL, tous les montants)
  • Remplacement : substituer les parties correspondant à un motif par autre chose (uniformiser un format de date, masquer un numéro de mobile)

Démonstration ci-dessous avec des cas concrets.

Cas de validation

Valider un numéro de mobile

regex : ^1[3-9]\d{9}$

Points clés : ancrer le début et la fin avec ^ et $ pour s'assurer que la chaîne entière est un numéro de mobile et non un texte plus long le contenant. Limiter le deuxième chiffre à 3-9 correspond aux règles actuelles de plage de numéros.

Valider un e-mail

regex : ^[\w.-]+@[\w.-]+.\w+$

Points clés : la version simplifiée suffit, une regex d'e-mail stricte est très complexe. En projet réel, combinez la version simplifiée avec l'envoi d'un e-mail de vérification pour double garantie.

Valider une carte d'identité

regex : ^\d{17}[\dXx]$

Points clés : 18 caractères, les 17 premiers sont des chiffres, le dernier est un chiffre ou X. Cette regex ne valide que le format, pas le code de contrôle.

Valider une URL

regex : ^https?://[\w.-]+

Points clés : commence par http ou https, suivi d'un domaine. Version simplifiée, une regex d'URL complète est extrêmement complexe.

Cas d'extraction

Extraire tous les numéros de mobile

regex : 1[3-9]\d{9}

Sans ^ ni $, pour trouver tous les numéros de mobile dans le texte. Utilisez la correspondance globale (indicateur g).

Extraire toutes les URL

regex : https?://[\w./?=&%-]+

Correspond aux URL commençant par http(s). Les caractères réels d'une URL sont plus complexes, ajustez le jeu de caractères selon vos besoins.

Extraire tous les montants

regex : [¥$]\d+(?:.\d+)?

Correspond aux montants commençant par ¥ ou $, la partie décimale est facultative. Par exemple ¥100, $99.9.

Extraire le contenu des balises HTML

regex : <a[^>]*>([^<]+)

Extrait le texte à l'intérieur des balises a. Les parenthèses capturent le contenu textuel. Notez que ce type de regex n'est pas assez robuste pour traiter du HTML ; pour du HTML complexe, un analyseur est plus fiable.

Cas de remplacement

Masquer un numéro de mobile

Remplacer les 4 chiffres du milieu par des astérisques : 1[3-9]\d{9} remplacé en conservant les 3 premiers et les 4 derniers.

En pratique, utilisez des groupes capturants : regex (1[3-9]\d)\d{4}(\d{4}), remplacer par \1****\2. \1 et \2 font référence aux groupes.

Uniformiser le format de date

Convertir 2026/07/12 en 2026-07-12 : regex (\d{4})/(\d{2})/(\d{2}), remplacer par \1-\2-\3.

Supprimer les espaces superflus

Convertir plusieurs espaces consécutifs en un seul : regex \s+, remplacer par un espace.

Supprimer les balises HTML

Retirer toutes les balises HTML pour ne garder que le texte : regex <[^>]+>, remplacer par une chaîne vide. Notez que les > situés dans les attributs de balises seront perdus ; pour des cas complexes, utilisez un analyseur.

Astuces de débogage

Valider progressivement avec un outil de test

Utilisez l'outil de test regex :

  1. Saisir la regex
  2. Saisir le texte de test (incluant des exemples qui doivent et ne doivent pas correspondre)
  3. Consulter les correspondances surlignées
  4. Ajuster progressivement la regex jusqu'à obtenir le bon résultat

D'abord faire correspondre, puis optimiser

Écrivez d'abord une regex qui correspond, puis envisagez l'optimisation (performance, précision). Ne visez pas la perfection dès le départ.

Visualiser la regex en ligne

Pour les regex complexes, utilisez un outil de visualisation pour décomposer la structure et clarifier la signification de chaque partie.

Attention aux cas limites

  • Chaîne vide
  • Chaîne ne correspondant que partiellement
  • Chaîne contenant des caractères spéciaux
  • Chaîne très longue

Motifs regex réutilisables

Caractères chinois

[\u4e00-\u9fa5]+

Code postal

^\d{6}$

Numéro QQ

^[1-9]\d{4,10}$

Couleur hexadécimale

^#[0-9a-fA-F]{6}$

Numéro de version

^\d+.\d+.\d+$

Pièges fréquents

Correspondance gourmande

.* correspond trop. Pour extraire le contenu d'une balise, utilisez [^<]+ plutôt que .* afin d'éviter les correspondances traversant plusieurs balises.

Caractères spéciaux non échappés

Les métacaractères comme le point, l'astérisque, le point d'interrogation doivent être échappés. Pour correspondre à une barre oblique inverse elle-même, écrivez \.

Correspondance multiligne

Par défaut, . ne correspond pas aux sauts de ligne. Pour traiter du texte multiligne, activez le mode ligne simple ou utilisez [\s\S] pour correspondre à n'importe quel caractère.

Problèmes de performance

Catastrophic backtracking (rétroaction catastrophique) : les quantificateurs imbriqués comme (a+)+ peuvent être extrêmement lents sur certaines entrées. Pour les regex complexes, surveillez les performances ; sur les textes très longs, tronquez avant de faire correspondre.

Résumé

La pratique des regex se divise en trois catégories : validation, extraction et remplacement. La validation utilise les ancres ^ et $, l'extraction la correspondance globale, le remplacement les références aux groupes capturants. Testez d'abord vos regex avec un outil, puis optimisez. Mémorisez quelques motifs courants (numéro de mobile, e-mail, date, URL) pour couvrir les besoins quotidiens. L'outil de test regex de DocsAll s'exécute dans le navigateur : testez au fil de l'écriture, votre texte n'est pas téléversé.

T
Timi Tian 创始人 / 全栈工程师

DocsAll 创始人,10 年全栈开发经验,专注浏览器端文档处理技术与隐私保护架构。前新加坡科技公司技术负责人。