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

Swift中如何移除Unicode U+2018左单引号并替换对应字符

解决Unicode左单引号替换问题

我来帮你搞定这个问题~你之前用的folding方法没生效是有原因的:.diacriticInsensitive这个选项主要是用来处理变音标记(比如重音符、鼻音符号这类附着在字母上的标记),而U+2018是独立的标点字符,不属于变音标记范畴,所以这个方法对它完全不起作用。

针对你的需求——移除左单引号,同时把‘A、‘a、‘U、‘u直接替换成对应的字母,这里有个简单可行的Swift解决方案:

let originalString = "Ghulam ‘Ali, ‘Ali Khel,‘Ali Sher ‘Alaqahdari"
// 第一步:替换‘A/‘a/‘U/‘u为对应的字母
var processedString = originalString.replacingOccurrences(
    of: "‘([AaUu])",
    with: "$1",
    options: .regularExpression
)
// 第二步:移除所有剩余的独立左单引号
processedString = processedString.replacingOccurrences(of: "‘", with: "")

print(processedString)
// 输出结果:Ghulam Ali, Ali Khel,Ali Sher Alaqahdari

代码说明:

  • 第一行正则‘([AaUu])会精准匹配左单引号加上目标字母的组合,用$1引用捕获到的字母,直接替换掉整个带引号的组合;
  • 第二步处理那些单独存在的左单引号(比如‘Ali Khel里的单引号),直接替换为空字符串完成移除。

如果你的场景里还有其他类似带引号的字母需要处理,只需要扩展正则里的字符范围就可以啦~

内容的提问来源于stack exchange,提问作者Y.R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:57:57