Reguläre Ausdrücke
sonja
- programmiertechnik
Hallo,
kann man in e i n e r Anweisung mehrere Zeichenfolgen ersetzen (mehrere Zeichen geht, das weiß ich)?
Also
z.B. eu ==> Europa
d-r ===> Dom. Republik
etc.
gudn tach!
kann man in e i n e r Anweisung mehrere Zeichenfolgen ersetzen (mehrere Zeichen geht, das weiß ich)?
welche sprache?
in php (ab v4.0.5) kann z.b. str_replace sowas.
und in perl geht sowieso alles.
prost
seth
und in perl geht sowieso alles.
In javascript oder perl.
Die Frage ist aber, wie sieht der reg. Ausdruck aus?
Gruß
sonja
Hallo sonja.
und in perl geht sowieso alles.
In javascript oder perl.
Die Frage ist aber, wie sieht der reg. Ausdruck aus?
Das ist das gute daran: du brauchst keinen. Schau dir einfach die von seth verlinkte Seite an.
Und beantworte bitte auch, um welche Sprache es geht. Sollte es sich nicht um PHP handeln, ist der Hinweis auf str_replace natürlich weniger hilfreich.
Einen schönen Freitag noch.
Gruß, Ashura
Die Frage ist aber, wie sieht der reg. Ausdruck aus?
Hier meine ich etwas in der Art /alt1alt2/neu1neu1/
Das ist das gute daran: du brauchst keinen. Schau dir einfach die von seth verlinkte Seite an.
Dort werden, wenn ich es richtig verstehe alle zutreffenden Texte durch e i n e n neuen Text ersetzt.
Und beantworte bitte auch, um welche Sprache es geht. Sollte es sich nicht um PHP handeln, ist der Hinweis auf str_replace natürlich weniger hilfreich.
Ich habe doch geschrieben "Javascript oder Perl", denn in beiden ist die Lösung ähnlich.
hi,
Das ist das gute daran: du brauchst keinen. Schau dir einfach die von seth verlinkte Seite an.
Dort werden, wenn ich es richtig verstehe alle zutreffenden Texte durch e i n e n neuen Text ersetzt.
Dann schau noch mal nach.
Tipp: str_replace nimmt für die ersten beiden Parameter auch Arrays.
gruß,
wahsaga
Hallo,
Dann schau noch mal nach.
Tipp: str_replace nimmt für die ersten beiden Parameter auch Arrays.
Das Beispiel ist doch PHP. Ich benötige aber eine Perl- bzw. Javascript-Funktion.
Danke Euch
hi,
Ich benötige aber eine Perl- bzw. Javascript-Funktion.
OK - dann mach's doch da ähnlich.
Wenn du weißt, wie man einmal $gesucht durch $ersatz ersetzt - dann verbinde das mit einem (oder zwei) Array(s) und einer Schleife darüber.
gruß,
wahsaga
Wenn du weißt, wie man einmal $gesucht durch $ersatz ersetzt - dann verbinde das mit einem (oder zwei) Array(s) und einer Schleife darüber.
Dass man es einzeln (über eine Schleife) ersetzen kann, war mir klar.
Ich hatte allerdings gehofft, dass man wie mehrere einzelne Zeichen
(/abc/ABC/) auch mehrere Strings in einem Statement ersetzen kann.
Dem ist dann wohl nicht so, schade.
Gruß
sonja
Hallo sonja,
In Perl könnte man sowas z.B. so schreiben:
my $test = "text bla text text blub text text";
my $replace = {bla => "1", blub => "2"};
my $pat = join("|", keys %{$replace});
my $test =~ s/($pat)/$replace->{$1}/ge;
print $test, "\n"
Ausgabe sollte sein:
text 1 text text 2 text text
Grüße
Daniel
Danke Euch
Sonja
Hallo,
my $test = "text bla text text blub text text";
my $replace = {bla => "1", blub => "2"};
my $pat = join("|", keys %{$replace});
my $test =~ s/($pat)/$replace->{$1}/ge;
print $test, "\n"Ausgabe sollte sein:
text 1 text text 2 text text
Als Ergebnis kommt bei mir ein leerer String. Leider kenne ich mich nicht so gut aus, dass ich einen möglichen Fehler finden könnte.
Gruß
Sonja
Hallo sonja,
So sollte es funktionieren:
my $test = "text bla text text blub text text";
my $replace = {bla => "1", blub => "2"};
my $pat = join("|", keys %{$replace});
$test =~ s/($pat)/$replace->{$1}/ge;
print $test, "\n"
Ich hatte $test in der vorletzten Zeile aus Versehen nochmals deklariert.
Grüße
Daniel
Danke Daniel,
es klappt!