Ich möchte Interpunktionen und Symbole (nicht Wort Zeichen in der Regel) aus einer Zeichenfolge entfernen, die Unicode (Nicht-ASCII) Zeichen hat.Handle Unicode beim Entfernen/Ersetzen von Nicht-Wort Zeichen
z.B. New $Orléans
-New Orléans
oder NewOrléans
(wenn Raum entfernt wird)
Die Methoden, die ich Kreuz gekommen sind \W
oder \w
weit so verwenden (siehe PHP strip punctuation)
Die Herausforderung Ich habe Unicode wird beibehalten. Wenn ich \W
die Î
auf Île-de-France
verwenden wird entfernt/ersetzt:
preg_replace('/\W+/', "-", 'Île-de-France')
-le-de-France
gibt
Ist es möglich, nicht-Wort-Zeichen zu entfernen und noch nicht-ASCII-Zeichen zu verarbeiten, die Wortzeichen sind?
Danke.
Verwenden Sie ''/ [^ \ p {M} \ w] +/u''. –
https://www.regex101.com/r/hV2qA2/1 – splash58
Wenn Sie mit Kombinationsmarken arbeiten müssen, verwenden Sie meinen Vorschlag. Andernfalls ist Ihre Frage ein Duplikat, da es hier so viele ähnliche Fragen zum Modifikator '\ 'gibt. –