Ste*_*fan 7 php regex newline utf-8
我正在使用以下正则表达式从UTF-8字符串中删除所有不可见的字符:
$string = preg_replace('/\p{C}+/u', '', $string);
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但是如何更改它以便删除除换行符之外的所有不可见字符?我尝试使用[^ \n]等一些东西,但它不起作用.
谢谢你的帮助!
编辑:换行符是'\n'
使用"双重否定":
$string = preg_replace('/[^\P{C}\n]+/u', '', $string);
Run Code Online (Sandbox Code Playgroud)
说明:
\P{C}
是一样的[^\p{C}]
.[^\P{C}]
是一样的\p{C}
.\n
.