Regex Tester - Tester des Expressions Régulières en Ligne
Testez et déboguez des expressions régulières en ligne. Outil interactif avec mise en évidence des correspondances, support des flags et explications.
Keywords
regex tester, testeur expression régulière, validateur regex, débogueur regex, pattern matcher, outil regex
Un testeur regex en ligne vous aide à concevoir, déboguer et expliquer des expressions régulières avec un retour instantané. Utilisez-le pour valider des adresses email, extraire des ID, normaliser les espaces, analyser des logs ou réécrire du texte avec des remplacements sécurisés. Grâce à des exemples clairs et un surlignage en temps réel, vous pouvez apprendre les concepts fondamentaux—classes de caractères, groupes, quantificateurs, ancres, lookarounds—sans mémoriser chaque symbole. Cette page se concentre sur les cas d’usage pratiques que les développeurs rencontrent au quotidien et montre comment éviter les pièges de performance tout en gardant des patterns lisibles et maintenables.
Bases des regex : patterns, flags et classes de caractères
Une expression régulière décrit des ensembles de chaînes à l’aide de littéraux et de métacaractères. Éléments courants : un point (.) correspond à n’importe quel caractère, les ancres (^) et ($) correspondent au début et à la fin, les quantificateurs (* + ? {m,n}) contrôlent la répétition, les classes de caractères ([a-z], \d, \w, \s) correspondent à des catégories, les groupes (( ... )) capturent des sous-chaînes, et l’alternance (a|b) permet de choisir parmi plusieurs options. Les flags comme g (global), i (ignore case), m (multiline), s (dotall) et u (Unicode) modifient le comportement des recherches. Ensemble, ces éléments permettent d’exprimer des matchers puissants pour la validation et le traitement de texte.
Patterns pratiques à adapter immédiatement
Email (validation UI pragmatique) : ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$ gère les adresses courantes sans couvrir les cas limites complexes du RFC. URL (filtrage basique) : ^https?:\/\/[^\s/$.?#].[^\s]*$ filtre les liens http/https pour un tri rapide. Date ISO : ^\d{4}-\d{2}-\d{2}$ correspond au format YYYY-MM-DD. Normalisation des espaces : remplacer \s{2,} par un espace unique globalement. Extraction d’IDs d’issues : /(PROJ-\d+)/ capture les clés de tickets dans les messages de commit. Considérez ces exemples comme des points de départ—affinez-les selon votre domaine et ajoutez des tests avec des échantillons réels.
Étape par étape : construire, tester et affiner
Commencez par une chaîne d’exemple concrète. Ajoutez d’abord les caractères littéraux, puis généralisez avec des classes de caractères et des quantificateurs. Introduisez des ancres pour restreindre l’endroit où les correspondances se produisent, et utilisez des groupes de capture pour extraire les parties nécessaires (par exemple, le domaine d’un email ou le chemin d’une URL). Dans le testeur, inspectez les correspondances et les groupes numérotés ; activez ou désactivez les flags pour explorer la sensibilité à la casse et le comportement multiline. Si un pattern correspond trop largement, rendez un quantificateur non-gourmand (.*?) ou ajoutez une classe plus spécifique. S’il ne correspond pas assez, assouplissez la classe ou supprimez des ancres inutiles. Itérez jusqu’à obtenir un comportement stable et explicite.
Limites, lookarounds et Unicode
Les limites de mot (\b) sont pratiques, mais tous les moteurs ne les traitent pas comme compatibles Unicode. Utilisez le flag u lorsque pris en charge et privilégiez des classes explicites pour le texte international. Les lookaheads (?=...) et lookbehinds (?<=...) vérifient le contexte sans consommer de caractères—idéals pour faire correspondre des chiffres uniquement s’ils sont précédés d’un symbole monétaire, ou extraire un slug uniquement lorsqu’il suit un préfixe connu. De nombreux moteurs prennent largement en charge les lookaheads ; les lookbehinds peuvent être absents dans des runtimes plus anciens, vérifiez donc dans votre environnement cible.
Performance et catastrophic backtracking
Des quantificateurs imbriqués et ambigus peuvent provoquer un catastrophic backtracking, où le moteur explore un nombre exponentiel de chemins avant d’échouer. Pièges classiques : des patterns comme (a+)+ sur de longues chaînes, ou (.*)+ combiné avec de l’alternance. Pour garder des regex performantes : (1) soyez précis avec les classes de caractères, (2) évitez les quantificateurs étoile/plus imbriqués, (3) privilégiez les groupes atomiques (?>...) ou les quantificateurs possessifs lorsque disponibles, et (4) ancrez les patterns pour réduire l’espace de recherche. Testez avec de grandes chaînes en pire cas dans le testeur pour détecter les lenteurs avant la mise en production.
Search-and-replace en toute sécurité
Pour les opérations de réécriture, testez soigneusement les groupes de capture et les backreferences. Par exemple, pour inverser le nom et le prénom dans 'Doe, Jane', utilisez ^([^,]+),\s*(.+)$ avec le remplacement $2 $1. Lors d’un remplacement dans du code, échappez correctement les chaînes de remplacement—les langages traitent différemment $1, \1 ou les groupes nommés. Pour des modifications multi-lignes, activez le flag multiline et utilisez des ancres explicites pour les lignes (^) et ($). Conservez toujours une copie de sauvegarde du texte original pour les opérations en masse.
Stratégie de test et maintenabilité
Traitez les regex comme du code : écrivez quelques exemples positifs et négatifs représentatifs, ajoutez-les à des tests unitaires lorsque les patterns sont critiques, et commentez les parties complexes. Privilégiez la clarté plutôt que l’ingéniosité—des classes plus longues mais explicites surpassent souvent des constructions courtes et ambiguës. Si un pattern encode des règles métier (par exemple, des formats de SKU produit), documentez l’intention à côté de l’expression afin que les futurs mainteneurs puissent la mettre à jour en toute sécurité.
Utilisez le testeur regex pour itérer en toute sécurité, documenter les patterns avec des exemples concrets et garder les expressions aussi simples et spécifiques que possible. Privilégiez des classes de caractères claires, des recherches ancrées et une utilisation mesurée des lookarounds afin d’équilibrer exactitude et performance.
Testeur Regex
Tester, faire correspondre, remplacer et diviser le texte en utilisant des expressions régulières avec une validation en temps réel
Modèle d'expression régulière
Strime de test
Résultat
Référence rapide regex
Classes de personnages
\\d - Digits (0-9)\\w - Word characters\\s - Whitespace. - Any characterQuantificateurs
* - 0 or more+ - 1 or more? - 0 or 1{n,m} - Between n and mAncres
^ - Start of string$ - End of string\\b - Word boundary\\B - Non-word boundary