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

如何去除网页抓取文本中的特殊符号(如’、‘)?

问题解答

一、这些特殊标点是什么?

你遇到的’(右单引号)、‘(左单引号)属于智能引号(又称弯引号、排版引号),是网页为提升排版美观度使用的印刷体标点,和普通直引号'不属于同一字符。这类标点常见于使用富文本编辑器的网页、博客或文档类站点,属于排版规范里的替代格式,但会对文本自动化处理造成干扰。

二、如何去除或替换?

可以通过字符串替换、正则匹配等方式处理,以下是几种PHP实现方案:

  • 直接字符串替换
    用str_replace把智能引号替换为普通直引号,若存在其他智能标点也可一并处理:

    // 替换左、右单引号为普通单引号
    $cleanedData = str_replace(['‘', '’'], "'", $jsonData);
    // 可选:同时替换智能双引号为普通双引号
    $cleanedData = str_replace(['“', '”'], '"', $cleanedData);
    
    // 处理后再解码JSON
    $decodedData = json_decode($cleanedData);
    
  • 正则批量替换
    若存在更多特殊排版符号,可通过匹配Unicode编码范围批量替换:

    // 替换智能单引号(Unicode编码U+2018、U+2019)
    $cleanedData = preg_replace('/[\x{2018}\x{2019}]/u', "'", $jsonData);
    // 替换智能双引号(Unicode编码U+201C、U+201D)
    $cleanedData = preg_replace('/[\x{201C}\x{201D}]/u', '"', $cleanedData);
    
    $decodedData = json_decode($cleanedData);
    
  • 抓取阶段预处理
    若使用cURL、Goutte等工具抓取网页,可在提取内容前先清洗HTML,避免后续JSON编解码出现问题:

    // 假设$html为抓取到的网页内容
    $cleanedHtml = str_replace(['‘', '’'], "'", $html);
    // 从清洗后的HTML中提取目标内容,再生成JSON字符串
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:05:01