Schrift
[thread]5656[/thread]

nochmal ersetzen, aber variabel (Seite 2)



<< |< 1 2 >| >> 18 Einträge, 2 Seiten
stb2050
 2003-08-24 01:40
#79829 #79829
User since
2003-08-14
87 Artikel
BenutzerIn
[default_avatar]
Hi Ihr,

komisch *wunder*, wie kommt mein Beitrag in JavaScript? War das mein Fehler? Kann auf den Beitrag hier im "Allgemeines zu Perl"-Forum leider nicht mehr Antworten, deswegen mach ich nochmal einen neuen auf, sorry.

Relias, danke für deine Antwort. Verstehe den Code leider nicht ganz:

Würde es so einsetzen:

Code (perl): (dl )
1
2
3
4
for(@content)
{
   &#36_ = s!<;script language="javascript" src=.+/hpm_counter[^>]+?>![counter]!g;
}


Es soll aber nicht nur das eine, sondern mehrere ersetzt werden,

Für die hintere Variable gibt es 2 Möglichkeiten, die verschiedene Ergebnisse erwirken sollen:

<script language="javascript" src="$homedir/hpm_counter.cgi?userid=49388291&art=gesamt">

... soll in [counter] ersetzt werden. Steht an Stelle von "gesamt" aber "tag", soll es in [countertage] ersetzt werden, also:

<script language="javascript" src="$homedir/hpm_counter.cgi?userid=49388291&art=tag">

... soll es in [countertage] ersetzt werden.

Habe schon versucht den Code von dir so umzubauen, habe es aber nicht hinbekommen, da ich die Syntax nicht ganz verstehe. Wie mache ich das denn?

Viele Grüße & vielen Dank
Steffen
stb2050
 2003-08-24 14:45
#79830 #79830
User since
2003-08-14
87 Artikel
BenutzerIn
[default_avatar]
Hi,

ah so ist das :-)

Habe mein Problem übrigens leider immer noch nicht lösen können. Mit der Lösung von SirLant ist das Array @content nachher leer. Weiß jemand, woran das liegt?

Viele Grüße
Steffen
stb2050
 2003-08-24 17:36
#79831 #79831
User since
2003-08-14
87 Artikel
BenutzerIn
[default_avatar]
Hi,

hmm ich kapiere das ganze mit dem regex überhaupt nicht. Habe mir auch etwas anderes überlegt, bei dem es nicht dynamisch, sondern nur normal ersetzt werden soll, aber nicht mal das funktioniert

Code (perl): (dl )
1
2
3
&#36string = "<;script language=\"javascript\" src=\"hpm_counter.cgi?userid=49388291&art=gesamt\">";

&#36string =~ s/\<;script language=\"javascript\" src=\"hpm_counter.cgi?userid=49388291&art=gesamt\"\>/\[counter\]/g;


Danach sollte $string eigentlich [counter] lauten, ist es aber nicht, sondern ist der gleiche String wie am Anfang. Was ist an meinem Regex falsch?

Viele Grüße
Steffen

PS: Kennt jemand eine gute Anleitung oder Tutorial für die Sache mit dem ersetzen, wo auch alle Parameter erklärt werden?

Viele Grüße
Steffen\n\n

<!--EDIT|stb2050|1061732253-->
Crian
 2003-08-24 17:50
#79832 #79832
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Gehört immer noch zu Javaskript :)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
SirLant
 2003-08-25 00:38
#79833 #79833
User since
2003-08-04
516 Artikel
BenutzerIn
[default_avatar]
Sehe ich genauso und ist meines erachtens nach im Allgemeinen am besten aufgehoben.

Weshalb muss man die eckigen Klammern escapen?Perl ist doch auch so schlau zu erkennen, dass das @ in nem RegExp, kein Array darstellen soll, usw. dann sollte es doch Eckige Klammern auch erkennen
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
format_c
 2003-08-25 14:08
#79834 #79834
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[E|B
,24.08.2003, 23:15]Du musst auch den "." und das "?" escapen!

Code: (dl )
1
2
3
$string = "<;script language=\"javascript\" src=\"hpm_counter.cgi?userid=49388291&art=gesamt\">";

$string =~ s/<;script language="javascript" src="hpm_counter\.cgi\?userid=49388291&art=gesamt">/\[counter\]/g;


So dürfte es gehen.

Thats it:
Code (perl): (dl )
1
2
3
4
5
6
7
my &#36string = "<;script language=\"javascript\" src=\"hpm_counter.cgi?userid=49388291&art=gesamt\">";

&#36string =~ s/<;script language="javascript" src="hpm_counter\.cgi\?userid=49388291&art=gesamt">/[counter]/g;

print &#36string;

[counter]

@[E|B]: [] musst du nur im RegEx teil escapen, da sie nur dort eine Bendeutung haben. Der zweite Teil der Substition ist der Ersetzungteil und hat nix mit RegEx  zu tun.
@Ishka: Bin wohl auch der Meinung, dass dieser tread nix im JS forum zu suchen hat. Wohl eher Allgemeines zu perl.

Gruß Alex.

Gruß alex
format_c
 2003-08-25 14:16
#79835 #79835
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[E|B
,25.08.2003, 12:13]Wenn so etwas kommt:

Code: (dl )
print "<b>Test</b>";


Stecken wir das ja auch nicht gleich ins HTML Forum.

:D
Crian
 2003-08-25 16:59
#79836 #79836
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Danke, hab mich tatsächlich von den vielen Javaskripts in den Cod-Beispielen täuschen lassen :D
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2003-08-24 04:41.