[PHP]PHP正则表达式过滤所有标点符号

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// Filter 英文标点符号
$word = preg_replace("/[[:punct:]]/i", " ", $word);

// Filter 中文标点符号
mb_regex_encoding('utf-8');
$char = "。、!?:;﹑•"…‘’“”〝〞∕¦‖— 〈〉﹞﹝「」‹›〖〗】【»«』『〕〔》《﹐¸﹕︰﹔!¡?¿﹖﹌﹏﹋'´ˊˋ―﹫︳︴¯_ ̄﹢﹦﹤‐­˜﹟﹩﹠﹪﹡﹨﹍﹉﹎﹊ˇ︵︶︷︸︹︿﹀︺︽︾ˉ﹁﹂﹃﹄︻︼()";
$word = mb_ereg_replace("[".$char."]", " ", $word, "UTF-8");

// Filter 连续空格
$word = preg_replace("/\s+/", " ", $word);

mb_ereg_replace用于中文字符替换,正则的时候不需要加/ /