Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如何删除所有控制字符但排除换行符(U+2028)字符?
U+2028
preg_replace('/[\p{Cc}]/', '', $response);
http://uk.php.net/manual/en/regexp.reference.unicode.php
您可以使用负前瞻:
/(?!\x{2028})\p{Cc}/u
您还需要启用UTF8 模式以匹配 unicode。
您可以使用双重否定
preg_replace('/[^\P{Cc}\x{2028}]/u', '', $response);
\P{Cc}是否定的\p{Cc}
\P{Cc}
\p{Cc}
[^...]是否定字符类
[^...]
所以你匹配所有不是不是控制字符的东西,那不是\x{2028}。这样您就可以从预定义的字符类中排除某些字符。
\x{2028}