regulärer Ausdruck Sonderzeichen entfernen
mixmastertobsi
- php
Hallo,
ich habe ein Problem mit einem regulären Ausdruck.
Ich möchte, dass in einem Satz, vor dem Wort und nach dem Wort die Sonderzeichen entfernt werden. Folgendes hatte ich probiert, doch es klappt nicht. Wer hat mir einen Tipp?
$a = preg_replace("/\ [^a-zA-z0-9]+([a-zA-z0-9]+)\ /i", " $1 ", $a);
"test ichbindertext-/ test" => "test ichbindertext test"
"test =)ichbindertext-/ test" => "test ichbindertext test"
"test =))ichbindertext test" => "test ichbindertext test"
@@mixmastertobsi
Ich möchte, dass in einem Satz, vor dem Wort und nach dem Wort die Sonderzeichen entfernt werden.
Was sind in diesem Kontext Sonderzeichen?
LLAP 🖖
Hallo mixmastertobsi,
Ich möchte, dass in einem Satz, vor dem Wort und nach dem Wort die Sonderzeichen entfernt werden. Folgendes hatte ich probiert, doch es klappt nicht. Wer hat mir einen Tipp?
Du suchst [\W_]
oder [\W]
?
Bis demnächst
Matthias
Hallo,
sop klappt es fast...
$a = preg_replace("/\ [\W ]+([\w]*)[\W ]+\ /i", " $1 ", $a);
Allerdings möchte ich nun, dass er immer nach einem Leerzeichen trennt.
Falsch
"test -TEXT% - test" => "test TEXT test"
Richtig
"test -TEXT% - test" => "test TEXT - test"
Hallo mixmastertobsi,
Die Zeichenklasse \W
enthält leider auch Leerzeichen.
$a = preg_replace("/[^a-zA-Z0-9 ]+(\w+)[^a-zA-Z0-9 ]+/", " $1 ", $a);
könnte zielführend sein.
Bis demnächst
Matthias
@@Matthias Apsel
$a = preg_replace("/[^a-zA-Z0-9 ]+(\w+)[^a-zA-Z0-9 ]+/", " $1 ", $a);
könnte zielführend sein.
Könnte. Könnte aber auch nicht. Deshalb meine Frage, was denn hier „Sonderzeichen“ sind.
LLAP 🖖
Hallo,
Sonderzeichen (in meinem Beispiel) sind alles, bis auf a-z, A-Z und 0-9.
@@mixmastertobsi
Sonderzeichen (in meinem Beispiel) sind alles, bis auf a-z, A-Z und 0-9.
Darf man fragen, warum? Warum sind keine Umlaute oder andere diakritische Zeichen erlaubt?
LLAP 🖖
Sonderzeichen (in meinem Beispiel) sind alles, bis auf a-z, A-Z und 0-9. Darf man fragen, warum? Warum sind keine Umlaute oder andere diakritische Zeichen erlaubt?
Klassiker wäre (auch 2017 noch): bei der Ablage von Dateien im Dateisystem. Die Beispiele des OP klangen allerdings nicht danach.
@@Mitleser
Sonderzeichen (in meinem Beispiel) sind alles, bis auf a-z, A-Z und 0-9. Darf man fragen, warum? Warum sind keine Umlaute oder andere diakritische Zeichen erlaubt?
Klassiker wäre (auch 2017 noch): bei der Ablage von Dateien im Dateisystem.
?? Welche 2017 in Benutzung befindliche OS kommt mit Umlauten oder andere diakritischen Zeichen in Dateinamen nicht klar?
LLAP 🖖
Hallo,
Sonderzeichen (in meinem Beispiel) sind alles, bis auf a-z, A-Z und 0-9.
Also doch \w bzw. \W wenn Du mit dem Unterstrich als NichtSonderZeichen leben könntest.
MfG
Hallo Matthias,
klappt leider nicht ganz.
Beispiel wie es sein sollte. Aktuell bleiben die Zeichen "/-" vor Matratzen stehen.
"Pure /-Matratzen • " => "Pure Matratzen • "
Hallo mixmastertobsi,
Ersetze die beiden äußeren Quantifikatoren durch *
. Bei der Ersetzung brauchen dann keine Leerzeichen mehr hin.
Bis demnächst
Matthias