Thread RegEx Editor: in Perl, via wxPerl, (45 answers)
Opened by pfuschi at 2004-08-01 19:05

pfuschi
 2004-08-01 19:05
#85130 #85130
User since
2004-03-31
198 Artikel
BenutzerIn
[default_avatar]
Servus,
ich möchte gerne einen kleinen Regex Editor/Debugger basteln. GUI wird via wxPerl erledigt und ist ansich auch überhaupt kein Problem.
Im Grunde soll das Tool ähnlich aussehen wie das Regex tool des Perl-plugins für eclipse.

Das testen eingegebener regex Strings wird logischer Weise via eval() erledigt.

Interessant wird es beim darstellen der matches.
Es sollen alle Klammern im Suchtext farblich hervorgehoben werden.
Folgende Werkzeuge stellt Perl zur Verfügung.
Ziatat aus perlre (http://www.perldoc.com/perl5.6/pod/perlre.html)
Quote
Several special variables also refer back to portions of the previous match. $+ returns whatever the last bracket match matched. $& returns the entire matched string. (At one point $0 did also, but now it returns the name of the program.) $` returns everything before the matched string. And $' returns everything after the matched string.

Mit diesen Variablen kann ich aber leider nicht die Positionen der einzelnen Klammern herausfinden. Bzw. immer nur Infos zur letzten. (pos() kann auch bloß das Ende des match ausgeben)
Es wäre also bestimmt möglich die regex in Teile zu zerlegen um so jeden Klammer Teil alleine zu verarbeiten, was zurfolge hätte das die letzte Klammer immer die "aktuelle" wäre und die Variablen "brauchbarer" wären.

Allerdings wirft das "spliten" wieder eine Menge anderer Probleme auf. Hat jemand da vielleicht irgendwelche Tipps, evtl. noch ein paar anderer Variablen die ich übersehen habe?
(z.B. $^N welches ich gerade im perlre der 5.8.4 entdeckt habe *G*)

Nuja vielleicht fällt euch ja noch etwas ein.

Ich werde meine Erfolge aufjedenfall hier dokumentieren. :P

greetz & fetten Segen
manu
PCE - Editor für Perl in Perl
Bookzilla.de - Mit jedem Kauf OpenSource unterstützen
"I know I can't hold the hate inside my mind
cause what consumes your thoughts controls your life"
- Creed

View full thread RegEx Editor: in Perl, via wxPerl,