Hallo i unten Code versucht, mit regexPHP: wie spezielle Zeichen zu entfernen (außer etwas) von String
$str = preg_replace("/[^a-z0-9_]/i", '', 'New_text % *');
//output => New_text
(_ ist außer char)
alle arbeiten perfekt, aber wenn mein Eingabestring so etwas wie in anderer Sprache (ex Hindi) wird Char in Hindi Lang auch löschen.
wie oben Beispiel
$str = preg_replace("/[^a-z0-9_]/i", '', 'कपिल शर्मा % * _');
//output => _
how to get: कपिल शर्मा _
gibt es einen Fehler in regex oder irgendeine andere Art und Weise in PHP wir tun können?
Verwenden Sie '\ W' anstelle des vollständigen Zeichenbereichs. Fügen Sie auch den Modifikator "u" hinzu. – chris85
Das 'a-z' deckt nicht Hindi Buchstaben sollten offensichtlich sein ... das sind _Latin_ Buchstaben. – CBroe
Also, was genau * tust du dann zu? 'a-z0-9' ist einfach und spezifisch. * "Und auch Hindi" * ist sehr weit, vage und unspezifisch. Was ist mit Arabisch, Japanisch und anderen Sprachen? – deceze