regex zeichen ersetzen
trulle
- perl
wie schreibe ich einen regex der mehrere aufeinanderfolgende (identische) zeichen durch einees ersetzt?
also zum bsp soll aus "haaaaaaallo" nur "hallo" werden.
wie schreibe ich einen regex der mehrere aufeinanderfolgende (identische) zeichen durch einees ersetzt?
also zum bsp soll aus "haaaaaaallo" nur "hallo" werden.
http://www.selfphp.info/funktionsreferenz/regulaere_ausdruecke_posix/ereg_replace.php
und
http://www.php-resource.de/tutorials/read/10/1/
(dort vor allem unter dem Abschnitt "Quantifier")
Den ersten Link hätteste dir sparen können. Mit PHP hab ich nämlich nix am Hut wie man an der Forenkategorie unschwer erkennen kann.
Will mich mit so einem Kram auch nicht beschäftigen.
Ich hatte schonmal einen Versuch unternommen:
my $text = "\n\n\n\n\n"; # soll durch \n ersetzt werden
$text =~ s/\n+/\n/g;
was aber leider nichts gewirkt hat.
Den ersten Link hätteste dir sparen können. Mit PHP hab ich nämlich nix am Hut wie man an der Forenkategorie unschwer erkennen kann.
Mea culpa.
Will mich mit so einem Kram auch nicht beschäftigen.
Das ist keine gute Einstellung.
Ich hatte schonmal einen Versuch unternommen:
my $text = "\n\n\n\n\n"; # soll durch \n ersetzt werden
$text =~ s/\n+/\n/g;
> was aber leider nichts gewirkt hat.
probier mal:
$text =~ s/\n{2,}/\n/g;
Das funktioniert leider nur, wenn ich die die Zeilenumbrüche in Linux setze.
Wenn ich das HTML Formular aber von meinem Windows Rechner ausfülle, dann will er das Muster nicht mehr erkennen.
So funktionierts: \r|\n{2,}
So funktionierts: \r|\n{2,}
kommt darauf an, was.
/\r|\n{2,}/
matcht genau ein \r oder mind. 2 \n.
s/\r|\n{2,}/\n/g
macht also etwas, von dem ich mir gerade keine sinnvolle anwendung vorstellen kann.
prost
seth
gudn tach!
my $text = "\n\n\n\n\n"; # soll durch \n ersetzt werden
$text =~ s/\n+/\n/g;
> was aber leider nichts gewirkt hat.
doch, danach ist $text=="\n". und sollte betriebssystem-unabhaengig sein.
was andere waere:
my $text = "
";
hier waere z.b. sowas wie s/[\n\r]+/\n/ angebracht.
prost
seth