In einem String alles entfernen ausser Buchstaben und Zahlen
Mario
- php
Hallo,
ich habe hier einen String und würde darin gern alle Sonderzeichen etc. entfernen, so dass am Ende nur noch Buchstaben und Zahlen übrig sind.
Achja Leerzeichen sollen auch beibehalten werden.
z.B.
$str="Hallo (Welt)! 123";
// vielleicht mit einem regulären Ausdruck oder preg_replace()?
echo $str;
// gibt aus: Hallo Welt 123
Bin auch über Tipp dankbar welche PHP Funktion mir sowas erlaubt.
Danke und Gruß,
Mario
Sup!
Ja, mit einem regulären Ausdruck würde das gehen, sehr gut!
Sieh' im Archiv und der PHP-Doku nach.
Gruesse,
Bio
Habe bisher mit regulären Ausdrücken nur gesucht oder mal das Gesuchte ersetzt.
Aber etwas zu suchen und das nicht gefundene zu ersetzen stellt mich jetzt vor ein grundlegendes Verständnisproblem.
cya
hi,
Habe bisher mit regulären Ausdrücken nur gesucht oder mal das Gesuchte ersetzt.
Aber etwas zu suchen und das nicht gefundene zu ersetzen stellt mich jetzt vor ein grundlegendes Verständnisproblem.
du brauchst ja auch lediglich das gefundene zu ersetzen - sorge dafür, dass dein ausdruck alles findet, was _nicht_ buchstabe oder zahl ist.
gruß,
wahsaga
Okay das hat mir ein wenig auf die Sprünge geholfen.;-)
Bei meinem Regex fehlt aber noch was und ich komm noch nicht drauf.
preg_match("/[^A-Za-z0-9 ]*/",$str,$matches);
Funktioniert solange der Ausdruck wirklich _nicht_ auf Buchstabe oder Zahl matcht. Sobald aber ein Buchstabe kommt, hört er auf zu matchen und liefert nur den Anfang zurück.
Und was mache ich dann wenn ich in meinen $matches alle Zeichen habe die ich nicht brauche? ;)
DANKE!
Mario
hi,
preg_match("/[^A-Za-z0-9 ]*/",$str,$matches);
Funktioniert solange der Ausdruck wirklich _nicht_ auf Buchstabe oder Zahl matcht. Sobald aber ein Buchstabe kommt, hört er auf zu matchen und liefert nur den Anfang zurück.
Und was mache ich dann wenn ich in meinen $matches alle Zeichen habe die ich nicht brauche? ;)
du wolltest doch nicht nur mat(s)chen, sondern auch ersetzen - also nimm preg_replace().
preg_replace('/[^a-zA-Z0-9 ]/', '', $text);
alles, was nicht buchstabe, ziffer oder blank ist, wird durch '' ersetzt.
gruß,
wahsaga
Das war ja einfach. Manchmal denkt man einfach viel zu kompliziert.
Tausend Dank! :D
cya, Mario