Schrift
[thread]11637[/thread]

Tags finden (Seite 3)

Leser: 1


<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten
pq
 2008-08-03 12:26
#113037 #113037
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
ich empfehle mittlerweile CPAN:Parse::BBCode als parser. (disclaimer: das modul ist von mir)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
defun
 2008-08-04 02:21
#113049 #113049
User since
2008-07-18
28 Artikel
BenutzerIn
[default_avatar]
Froschpopo+2008-08-03 00:49:39--
Dieser Parser funktioniert nicht mit folgendem Sting:
Code: (dl )
$str = "Zeile 1\r\nZeile 2\r\nZeile3";

aber super klappts mit dem hier:
Code: (dl )
$str = "Zeile 1\nZeile 2\nZeile 3\n";

Mein geliebtes Kamel-Buch sagt mir: "Perl verwendet \n zur Darstellung eines "logischen" Newlines, unabhängig von der Plattform." Somit Meinst du wohl kaum \r\n, sondern eher \015\012. Und das ist unter Windows genau der Wert von \n.

Froschpopo+2008-08-03 00:49:39--
Vorläufig habe ich das jetzt so gelöst:
Code (perl): (dl )
1
2
3
39:         $text =~ s/\r//g;
40:         $text =~ s/(?<![\n\r])\n(?![\r\n])/<br \/>/g;
41:         $text =~ s/[\n\r]+(.*)[\n\r]+/\n<p>$1<\/p>\n/g;

Fühle mich dabei aber irgendwie dreckig weil ich den \r einfach nur lösche (Zeile 39)

Es mutet komisch an, dass du in der ersten Zeile alle \r löschst und in der zweiten Zeile nach \r im Lookbehind- und Lookahead-Regex suchst. Da wirst du wohl kaum \rs finden. :)
Somit sehen deine beiden Regexe eigentlich so aus:
Code (perl): (dl )
1
2
3
$text =~ s/\r//g;
$text =~ s/(?<!\n)\n(?!\n)/<br \/>/g;
$text =~ s/\n+(.*)\n+/\n<p>$1<\/p>\n/g;

Statt gesondert die \rs rauszukillen, würde ich (gemäß dem Kamel-Buch) empfehlen, jegliche Zeilenumbrüche ins Format des OS umzuwandeln, unter dem dein Script läuft, bevor du mit ihnen arbeitest:
Code (perl): (dl )
$text =~ s/\015?\012/\n/g;

Dann behandelst du auch Mac-Zeilenumbrüche (\015) immer korrekt.
<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten



View all threads created 2008-04-13 18:34.