You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP:如何调整正则过滤字符串以保留换行符?

解决方案

直接在正则表达式的允许字符集合中添加\n和\r即可,修改后的代码如下:

$clean = preg_replace("/[^a-z0-9 \.\-\"_',\n\r]/i", "", $string);

说明:

  • 字符类[^...]表示匹配不在集合内的所有字符,把\n(换行符)和\r(回车符)加入集合后,这两类字符就不会被替换删除。
  • 不需要添加/m修饰符,该修饰符仅影响^和$的匹配范围(匹配行首/行尾),和换行符本身的保留无关。
  • 若之前尝试添加\R失败,是因为\R是正则中的换行符 shorthand(匹配任何换行序列),但它不能直接放在字符类[]中使用,所以直接显式添加\n和\r是最可靠的方式。

内容的提问来源于stack exchange,提问作者Scotty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 17:31:11