PHP-Code:echo preg_replace('/"(.*)"/', '„\\1“', "\"Hallo das ist ein Text\"");
Wie müsste man einen regex erstellen, der in einem Text alle falschen Anführungszeichen (sprich: Das ist ein "Test" wie im Buche) gegen korrekte austauscht (Das ist ein „Test“ wie im Buche)?
Geht das auch in „einem Rutsch“, oder braucht man zwei dazu (erst das erste, dann das zweite austauschen)?
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
PHP-Code:echo preg_replace('/"(.*)"/', '„\\1“', "\"Hallo das ist ein Text\"");
Nun, das klappt leider nur in einem einzigen Fall - aber nicht mehr, wenn in einem Text (nicht nur in einem Satz) mehrere Anführungszeichen kommen.
Beispiel:
Bei $text werden nur die Anführungszeichen von ein Test ausgetauscht, nicht aber vom im Buche ...PHP-Code:<?php
$text='Das ist "ein Test". Wie er "im Buche" steht ... ';
$text2='Jetzt werden wir gemein: ""Test" ... und "Test"" ... hehe';
echo $text."<br>".$text2."<br><br>";
echo preg_replace('/"(.*)"/', '„\\1“', $text);
echo '<br>';
echo preg_replace('/"(.*)"/', '„\\1“', $text2);
?>
$text2 ist fies, aber egal. Wollte nur sehen, was passiert![]()
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
Ausgabe:PHP-Code:echo preg_replace('/"([^"]+)"/', '„\\1“', 'Das ist "ein Test". Wie er "im Buche" steht ... Jetzt werden wir gemein: ""Test" ... und "Test"" ... hehe');
Das ist „ein Test“. Wie er „im Buche“ steht ... Jetzt werden wir gemein: "„Test“ ... und „Test“" ... hehe
So?
Geändert von Strogij (29.05.2004 um 15:51 Uhr)
Danke, das war genau das, was ich braucht! :-)
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
ganz simpel wäre htmlentities() - ersetzt alle zeichen wie "ß,ä,ö,ü" etc durch die HTML-entsprechungen![]()
Java != JavaScript
"He who makes a beast of himself gets rid of the pain of being a man."
Dr. Johnson
Ich glaube kaum, daß er es dafür gebraucht hat.
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)