我的 MySQL 数据库中有很多字符串具有控制字符,例如^M. 我想要一个在 PHP 中删除它的正则表达式,但不考虑换行等内容,例如:“\n”。
我尝试了以下方法:
preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $bad);
这似乎让它原地不动。
摆脱这些控制字符的最佳方法是什么?
我想要一个在 PHP 中删除它的正则表达式,但不考虑换行等内容,例如:“\n”
使用以下方法:
preg_replace("/(\x0A)|[[:cntrl:]]/", "$1", $bad);
Run Code Online (Sandbox Code Playgroud)
\x0A - 指向换行符
[[:cntrl:]] - 代表所有控制字符
(\x0A)|[[:cntrl:]] - 一次匹配换行符或某些控制字符的交替组。
$1 仅在匹配时才保存第一个换行符的捕获组