Testeur Regex/ Temps réel
Mise en évidence des correspondances en temps réel avec détails des groupes de capture, mode remplacement et modèles intégrés. Entièrement local.
//
Rapide :
Chaîne de test
Entrez un motif ci-dessus.
Cet outil a-t-il résolu votre problème ?
Qu'est-ce qu'un testeur regex
Un testeur regex permet aux développeurs de tester et déboguer les expressions régulières en temps réel, avec affichage instantané des résultats de correspondance, groupes de capture et effets de remplacement.
Cas d'utilisation courants des regex
Validation de formulaires : vérifier les formats d'email, téléphone, ID. Extraction de données : extraire des motifs spécifiques du texte. Remplacement de texte : remplacer en masse le texte correspondant au motif. Analyse de journaux : filtrer les lignes selon des conditions.
Exemples de code
JavaScript
const re = /(?<year>\d{4})-(\d{2})/g;
const str = "2024-03 and 2025-01";
for (const m of str.matchAll(re)) {
console.log(m[0]); // "2024-03"
console.log(m.groups.year); // "2024"
console.log(m[2]); // "03"
console.log(m.index); // 0
}Python
import re
pattern = r"(?P<year>\d{4})-(\d{2})"
text = "2024-03 and 2025-01"
for m in re.finditer(pattern, text):
print(m.group(0)) // "2024-03"
print(m.group("year")) // "2024"
print(m.group(2)) // "03"
print(m.start()) // 0Go
import "regexp"
re := regexp.MustCompile(
`(?P<year>\d{4})-(\d{2})`,
)
text := "2024-03 and 2025-01"
matches := re.FindAllStringSubmatch(
text, -1,
)
// matches[0][0] = "2024-03"
// matches[0][1] = "2024" (year)
// matches[0][2] = "03"Rust
use regex::Regex;
let re = Regex::new(
r"(?P<year>\d{4})-(\d{2})"
).unwrap();
let text = "2024-03 and 2025-01";
for cap in re.captures_iter(text) {
println!("{}", &cap[0]); // "2024-03"
println!("{}", &cap["year"]); // "2024"
println!("{}", &cap[2]); // "03"
}Questions fréquemment posées
À quoi servent les drapeaux regex ?
g (global) trouve toutes les correspondances ; i (ignore case) rend la recherche insensible à la casse ; m (multiline) fait correspondre ^ et $ aux limites de ligne ; s (dotAll) fait correspondre . aux retours à la ligne.
Comment utiliser les groupes de capture dans le remplacement ?
Entourer des parties du motif de () pour créer des groupes, puis référencer comme $1, $2 dans le champ Remplacement. Exemple : motif (\d{4})-(\d{2}) avec remplacement $2/$1 transforme 2024-03 en 03/2024.
Que signifie l'index de correspondance ?
L'index est le décalage de caractère base zéro où commence la correspondance dans la chaîne originale. Utile en code — correspond directement à l'index retourné par String.prototype.exec().
Comment correspondre aux caractères Unicode / CJK ?
Pour les caractères chinois : [\u4e00-\u9fff]. Plage plus large : [\u4e00-\u9fff\u3400-\u4dbf]. Avec le drapeau u, utilisez \p{Script=Han} pour tous les caractères Han.
Que sont les assertions lookahead et lookbehind ?
Elles correspondent à des positions, pas des caractères : (?=…) lookahead positif — le côté droit doit correspondre ; (?!…) lookahead négatif — le côté droit ne doit pas correspondre ; (?<=…) lookbehind positif — le côté gauche doit correspondre.
Pourquoi ma regex cause-t-elle une boucle infinie ?
Avec le drapeau g, un motif pouvant correspondre à des chaînes vides (comme a* ou .*) ne fait pas avancer lastIndex après une correspondance vide. Cet outil fait avancer lastIndex automatiquement et limite à 2000 correspondances.