PHP去除中英文标点符号的实现方案

顾言
顾言
发布时间:2026-10-14| 5人浏览过
原创

本文将讲解如何在PHP中高效去除字符串中的中英文标点符号,重点解析利用URL编码配合正则表达式进行清理的技术原理,提供完整可运行的代码示例及结果分析。

技术目标与核心逻辑

在进行数据采集、关键词提取或数据验证时,往往需要剔除文本中的干扰字符,包括各种中英文标点。直接对Unicode字符集进行正则匹配可能较为复杂且容易遗漏。一种稳健的策略是利用 urlencode() 函数将所有非字母数字字符转换为特定的ASCII编码序列,进而通过简明的正则表达式批量替换这些编码,最后使用 urldecode() 恢复纯净文本。

第1步:初始化测试数据与环境

首先准备一段包含中文、英文及多种标点符号的测试字符串。确保运行环境支持标准的PHP内置函数。

第2步:数据预处理与编码转换

使用 urlencode() 对原始字符串进行编码。此步骤将特殊符号转换为类似 %XX 的形式,使得后续的正则匹配更加直观和可控。

第3步:执行正则匹配与替换

构建正则表达式,精准匹配代表英文及中文标点的十六进制编码组,并将其替换为空格或空字符串。以下是实现该逻辑的完整代码:

<?php
$keyword = "好‘。,好学习PHP!!!";
// 1. 将关键字转为URL编码格式
$keyword = urlencode($keyword);

// 2. 正则替换:
// %7E~,%60`,%21!,%40@,%23#,... (英文标点)
// %A3%BF, %A1%B7... (GBK/GB2312中文全半角标点)
// %E3%, %EF%BC... (UTF-8中文标点)
$keyword = preg_replace("/(%7E|%60|%21|%40|%23|%24|%5E|%26|%27|%2A|%28|%29|%2B|%7C|%5C|%3D|\-|_|%5B|%5D|%7D|%7B|%3B|%22|%3A|%3F|%3E|%3C|%2C|\.|%2F|%A3%BF|%A1%B7|%A1%B6|%A1%A2|%A1%A3|%A3%AC|%A1%B0|%A3%BA|%A3%BB|%A1%AE|%A1%AF|%A1%B1|%A3%FC|%A3%BD|%A1%AA|%A3%A9|%A3%A8|%A1%AD|%A3%A4|%A1%A4|%A3%A1|%E3%80%82|%EF%BC%81|%EF%BC%8C|%EF%BC%9B|%EF%BC%9F|%EF%BC%9A|%E3%80%81|%E2%80%A6%E2%80%9D|%E2%80%9C|%E2%80%98|%E2%80%99|%EF%BD%9E|%EF%BC%8E)+/", ' ', $keyword);

// 3. 解码恢复原始字符(此时标点已被移除)
$keyword = urldecode($keyword);

echo trim($keyword);
?>

第4步:验证输出结果

执行上述代码后,输入的混合标点字符串将被清理。对于输入 好‘。,好学习PHP!!!,输出结果将保留汉字、数字和字母,去除所有标点:

好 好学习PHP

注:具体输出可视替换目标(空格或空串)略有差异,核心在于标点被成功剥离。

方法优势与注意事项

该方法的优势在于不依赖复杂的Unicode字符范围判断,而是借助Web开发中最常用的URL编码机制进行间接过滤,兼容性好且易于调试。需注意以下几点:

  • 编码一致性:确保 urlencode 与 urldecode 成对出现,避免乱码。
  • 标点覆盖率:正则列表应涵盖常见的GB2312及UTF-8标点编码,若涉及特殊符号需补充对应编码值。
  • 性能考量:对于极长文本,建议先测试正则复杂度,必要时可使用更精简的字符类表达。

以上就是PHP过滤中英文标点符号的详细内容,更多关于PHP数据处理与正则应用的知识请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。