Les expressions régulières peuvent devenir très complexes. Le manque d’espace blanc les rend difficile à lire. Je ne peux pas bien qu’une expression régulière avec un débogueur. Alors, comment experts débogage des expressions régulières complexes ?
Réponses
Trop de publicités?Vous achetez RegexBuddy et d'utiliser ses construit dans la fonctionnalité de débogage. Si vous travaillez avec regexes plus de deux fois par année, vous allez vous faire de cet argent dans le temps économisé en un rien de temps. RegexBuddy sera également vous aider à créer simples et complexes, des expressions régulières, et même de générer le code pour vous dans une variété de langues.
Aussi, selon le développeur, cet outil fonctionne presque parfaitement sur Linux lorsqu'il est utilisé avec le VIN.
Avec Perl 5.10, use re 'debug';
. (Ou debugcolor
, mais je ne peux pas le format de sortie correctement sur un Débordement de Pile.)
$ perl -Mre=debug -e'"foobar"=~/(.)\1/' La Compilation De REx "(.)\1" Programme Final: 1: OPEN1 (3) 3: REG_ANY (4) 4: CLOSE1 (6) 6: REF1 (8) 8: FIN (0) minlen 1 Correspondance REx "(.)\1" contre "foobar" 0 <> <toto> | 1:OPEN1(3) 0 <> <toto> | 3:REG_ANY(4) 1 <f> <oobar> | 4:CLOSE1(6) 1 <f> <oobar> | 6:REF1(8) n'a pas... 1 <f> <oobar> | 1:OPEN1(3) 1 <f> <oobar> | 3:REG_ANY(4) 2 <fo> <obar> | 4:CLOSE1(6) 2 <fo> <obar> | 6:REF1(8) 3 <foo> <bar> | 8:FIN(0) Match de succès! Libérer REx: "(.)\1"
Aussi, vous pouvez ajouter des espaces et commentaires à regexes pour les rendre plus lisibles. En Perl, ce qui est fait avec l' /x
modificateur. Avec pcre
, il y a l' PCRE_EXTENDED
drapeau.
"foobar" =~ /
(.) # any character, followed by a
\1 # repeat of previously matched character
/x;
pcre *pat = pcre_compile("(.) # any character, followed by a\n"
"\\1 # repeat of previously matched character\n",
PCRE_EXTENDED,
...);
pcre_exec(pat, NULL, "foobar", ...);
Lorsque je suis bloqué sur une expression régulière je tourne habituellement à ceci : http://gskinner.com/RegExr/
Sa parfaite pour tester rapidement si quelque chose se passe mal.
J'utilise les Kodos - Le Python Expression Régulière Débogueur:
Kodos est un Python GUI utilitaire pour la création, le test et le débogage des expressions régulières pour le langage de programmation Python. Kodos devrait aider tous les développeurs de manière efficace et sans effort de développer des expressions régulières en Python. Depuis le Python de la mise en œuvre d'expressions régulières est basé sur le PCRE standard, Kodos devraient bénéficier des développeurs dans d'autres langages de programmation qui adhèrent également à la PCRE standard (Perl, PHP, etc...).
(...)
Fonctionne sur Linux, Unix, Windows, Mac.