PHPの句読点と同様ですが、アポストロフィを保持したいと思います。例:
I'm a student, but I don't like the school. I'll quit school.
ストリップの後の文字列は次のようになります。
I'm a student but I don't like the school I'll quit school
正規表現やその他の方法でそれを行うにはどうすればよいですか?
すべての Unicode 句読点文字もサポートする場合は、次の正規表現を使用します。
$str = preg_replace("#((?!')\pP)+#", '', $str);
この正規表現は Unicode 句読点文字クラス\pP
に一致しており、一致により、否定先読みを使用してアポストロフィ文字が回避されます。
これが最初の例の適応です:
$string = preg_replace('/[^a-z0-9\' ]+/i', '', $string);