【发布时间】:2015-10-29 16:23:16
【问题描述】:
我正在使用以下带有preg_replace 的正则表达式来去除任何标点符号的字符串:
$string = preg_replace("#((?!-|')\pP)+#", '', $string);
但我意识到它会破坏一些 unicode 字符。当字符串是这样的 "höpöttää?!..." 时,我会得到这个 "h�p�ttää",没有标点符号,但字符被破坏了。
我阅读了 PHP 文档并找到了一些使用 `...`u 修饰符的建议。所以我尝试了这个:
$string = preg_replace("`#((?!-|')\pP)+#`u", '', $string);
它确实解决了字符问题。但现在它停止删除标点符号。使用这个字符串"höpöttää?!...",我得到相同的"höpöttää?!..."。
【问题讨论】:
标签: php regex unicode preg-replace