2017-03-12 6 views
-2

Ich bin schrecklich mit preg_replace und ich habe eine harte Zeit herauszufinden, wie Sie einzelne und doppelte Anführungszeichen zu den zulässigen Zeichen hinzufügen. Jede Hilfe würde sehr geschätzt werden.PHP preg_replace halten Anführungszeichen

$comments = "It's an- "Apple"[email protected]#$%^&*()="; 
$comments = preg_replace('/[^A-Za-z0-9\s,.!?+-]+', '', $comments); 

OutPut: Sein AN- Apple-!?

Antwort

0

Escape-Angebot (\') und verwenden Sie das doppelte Zitat als normal und fügen Sie die / am Ende der Regex. Bewegen Sie den Bindestrich am Ende innerhalb der regex character class oder entkommen Sie innerhalb der Regex seit dem, was eine besondere Bedeutung in regex character class (Bereich) hat.

$comments = preg_replace('/[^A-Za-z0-9\s,.!?+\\-"\']+/', '', $comments); 
//           ---^^^^^--- 
// or 
$comments = preg_replace('/[^A-Za-z0-9\s,.!?+"\'-]+/', '', $comments); 
//           --^^^^--- 
+0

Vielen Dank für die schnelle Antwort, aber aus irgendeinem Grund entfernt dies die gesamte Zeichenfolge und gibt nichts zurück. – nickyb

+0

@nickyb: Überprüfen Sie die aktualisierte –

+0

@nickyb: können Sie die erwartete Eingabe und Ausgabe teilen, Wert von '$ Kommentare' –