Regex Tester – Testez et déboguez les expressions régulières en temps réel
Les expressions régulières (regex) sont l’un des outils les plus puissants de l’arsenal d’un développeur – et l’un des plus énigmatiques. Une seule expression régulière bien conçue peut remplacer 50 lignes de code d’analyse de chaînes. Notre testeur en temps réel vous permet de créer, tester et comprendre des modèles sans le cycle édition-sauvegarde-exécution de votre IDE.
Référence rapide de la syntaxe Regex
| Modèle | Matchs | Exemple |
|---|---|---|
\\\\d | N'importe quel chiffre de 0 à 9 | \\\\d{4}matchs 2024 |
\\\\w | Caractère de mot (lettre, chiffre, _) | \\\\w+correspond à "hello_world" |
^ / $ | Début/fin de chaîne | ^\\\\d{5}$correspond uniquement aux codes postaux à 5 chiffres |
[...] | N'importe quel caractère dans l'ensemble | [aeiou]correspond à n'importe quelle voyelle |
(?:...) | Groupe non capturant | Groupes sans enregistrer pour capturer des groupes |
(?=...) | Une perspective positive | \\\\w+(?=\\\\.com)correspond au sous-domaine |
5 modèles d'expressions régulières du monde réel qui valent la peine d'être mis en signet
- Validation par e-mail :
/^[\\\\w.-]+@[\\\\w.-]+\\\\.[a-z]{2,}$/i - Numéro de téléphone américain :
/^(\\\\+1)?[\\\\s.-]?\\\\(?\\\\d{3}\\\\)?[\\\\s.-]?\\\\d{3}[\\\\s.-]?\\\\d{4}$/ - Extraction d'URL :
/https?:\\\\/\\\\/[^\\\\s"']+/g - Vérification du mot de passe fort :
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$/ - Supprimez les espaces supplémentaires :
/\\\\s+/gremplacer par un seul espace
Foire aux questions
À quoi servent les drapeaux g, i, m ?
g(global) : trouver toutes les correspondances, pas seulement la première.je: insensible à la casse.m(multiligne) : ^ et $ correspondent aux limites de ligne au lieu des limites de chaîne.
Pourquoi mon regex fonctionne-t-elle ici mais pas en Python ?
Ce testeur utilise le moteur regex de JavaScript. PythonconcernantLe module présente des différences de syntaxe mineures — notamment, Python utilise(?P<nom>...)pour les groupes nommés, tandis que JavaScript utilise(?<nom>...).
Quelles sont les causes d’un retour en arrière catastrophique ?
Des modèles comme(une+)+appliqué à de longues chaînes qui ne correspondent pas entraîne une complexité temporelle exponentielle. Utilisez des groupes atomiques ou des quantificateurs possessifs dans les moteurs qui les prennent en charge, ou restructurez le modèle pour éviter les répétitions imbriquées.