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

PHP如何移除字母和空格以外的所有字符?正则丢失空格需修复

解决方案

你当前的正则表达式/\PL/u会匹配所有非Unicode字母的字符,空格也属于这类字符,所以被一同删除了。要保留空格,需要调整正则,只移除字母和空格之外的所有字符。

修改后的代码如下:

$status = "1 (Delivered to customer)";

// 匹配除Unicode字母和空白字符之外的所有字符,替换为空
$status = preg_replace('/[^\pL\s]/u', '', $status);

// 输出:Delivered to customer
echo $status;

正则说明

  • [^...]:反向字符集,匹配不在括号内的所有字符
  • \pL:匹配任意Unicode字母(包含大小写、多语言字母)
  • \s:匹配任意空白字符(包括空格、制表符等,若只想保留普通空格,可替换为 )
  • u修饰符:开启Unicode模式,确保多语言字符能正确匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:45:32