Schrift
[thread]11636[/thread]

regex



<< >> 5 Einträge, 1 Seite
Froschpopo
 2008-04-13 17:44
#108306 #108306
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ich würde gerne alle alleinstehenden \n durch <br /> ersetzen.
Code: (dl )
1
2
my $test = "Hallo,\nDu bist angemeldet\n\nMit freundlichen Grüßen\n";
$text =~ s/\n{1}/<br \/>/g;


Aber irgendwie ersetzt er auch die \n\n, was nicht sein soll.
Ich möchte nur alleinstehende \n ersetzen.

Ich hab schon überlegt, erst alle \n\n durch irgendwas anderes zu ersetzen und das dann nachher wieder umnzukehren. Aber das sieht nicht so galant aus.
moritz
 2008-04-13 17:49
#108307 #108307
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Kein wunder, er findet ja auch ein \n, und ersetzt das. Um das zu verhindern, brauchst du lookarounds:
Code: (dl )
(?>!\n)\n(?>\n)

(ungetestet).
Froschpopo
 2008-04-13 17:53
#108308 #108308
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
funktioniert leider nicht.

Code: (dl )
1
2
my $test = "Hallo,\nDu bist angemeldet\n\nMit freundlichen Grüßen\n";
$text =~ s/(?>!\n)\n(?>\n)/<br \/>/g;


Das Ergebnis sollte so aussehen:
Hallo,<br />Du bist angemeldet\n\nMit freundlichen Grüßen<br />
Gast Gast
 2008-04-13 17:56
#108310 #108310
eher
Code (perl): (dl )
...=~|(?<!\n)\n(?!\n)|<BR />|sg
Froschpopo
 2008-04-13 18:09
#108311 #108311
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
so funktionierts :)
Danke euch beiden!
<< >> 5 Einträge, 1 Seite



View all threads created 2008-04-13 17:44.