Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]2333[/thread]

RegExp.$1-$9 löschen



<< >> 6 Einträge, 1 Seite
Superfrank
 2007-02-28 12:23
#25061 #25061
User since
2006-09-05
164 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich mache über Javascript einige reguläre Ausdrücke und möchte vor jedem nächsten regex-Aufruf die Variablen RegExp.$1-$9 löschen, da die alten Matches sonst erhalten bleiben. Hat jemand einen Tipp wie das geht?

Grüsse

Frank
renee
 2007-02-28 13:06
#25062 #25062
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
geht nicht, die Variablen sind "read-only". Warum arbeitest Du nicht mit "richtigen" Variablen?

Also anstatt
Code: (dl )
perl -e 'if("test" =~ /(es)/){print $1}'


einfach
Code: (dl )
perl -e 'if(my ($test) = "test" =~ /(es)/){print $test}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Superfrank
 2007-02-28 13:17
#25063 #25063
User since
2006-09-05
164 Artikel
BenutzerIn
[default_avatar]
Hallo Renee,
die Regexe finden in Javascript, nicht in Perl statt. Aber ich versuche es mal mit match() gemäß Deinem Beispiel. $1-$9 sind für mich so leider unbrauchbar bzw. man kann es nur einmal verwenden.

Grüsse

Frank
renee
 2007-02-28 13:23
#25064 #25064
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Vielleicht solltest Du exec statt match nehmen (http://www.javascriptkit.com/jsref/regexp.shtml)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Superfrank
 2007-02-28 13:32
#25065 #25065
User since
2006-09-05
164 Artikel
BenutzerIn
[default_avatar]
Hallo Renee,
exec verwende ich schon, habe jetzt aber auch einen Würgaround gefunden. Ich weiß, daß # niemals matchen kann und mache vor jedem regex einfach

Code: (dl )
1
2
3
    var regex3 =/^(#)(#)(#)$\/;
var clear_slot = '###';
regex3.exec(clear_slot);


so, daß in den ersten 3 Slots (mehr bauche ich nicht) der vorherige Match gegen ein # ausgetauscht wird.

Grüsse

Frank
renee
 2007-02-28 13:36
#25066 #25066
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du das Ergebnis von exec immer einer anderen Variablen zuweist, dann brauchst Du diesen Workaround doch gar nicht, oder?!?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 6 Einträge, 1 Seite



View all threads created 2007-02-28 12:23.