和PHP strip punctuation一样,但我想保留撇号。 例如:
I'm a student, but I don't like the school. I'll quit school.
strip之后的字符串应为:
I'm a student but I don't like the school I'll quit school
我怎样才能用正则表达式或其他方式做到这一点?
答案 0 :(得分:4)
如果您还想支持所有Unicode标点符号,请使用此正则表达式:
$str = preg_replace("#((?!')\pP)+#", '', $str);
此正则表达式匹配Unicode标点字符类\pP
,匹配将避免使用否定前瞻的撇号字符。
答案 1 :(得分:2)
以下是第一个例子的改编:
$string = preg_replace('/[^a-z0-9\' ]+/i', '', $string);