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

如何在Xcode(ICU正则)中将代码与JSON键的点替换为短横线?

解决Xcode中替换JSON键与代码引用中点为短横线的问题

需求说明

需要将JSON文件中的键(如"abc.xyz.lmn")和代码库中的引用(如title: "xyz.abc.ijk")里的所有.替换为-,最终格式为xxx-xxx-xxx。

正则方案(适配Xcode的ICU正则)

直接匹配双引号内、位于字母之间的点,精准替换:

查找正则:

(?<="(?:[a-zA-Z]+\.)*[a-zA-Z])\.(?=[a-zA-Z](?:\.[a-zA-Z]+)*")

替换内容:

-

正则解释

  • (?<="(?:[a-zA-Z]+\.)*[a-zA-Z]):正向后查,确保当前点位于双引号内,且左侧是字母(前面可带多组「字母+点」的前缀)
  • \.:匹配需要替换的点字符
  • (?=[a-zA-Z](?:\.[a-zA-Z]+)*"):正向预查,确保当前点位于双引号内,且右侧是字母(后面可带多组「点+字母」的后缀)

操作步骤

  1. 打开Xcode全局查找替换(快捷键Cmd+Shift+F)
  2. 点击查找框左侧的.*按钮,切换到正则匹配模式
  3. 粘贴上述查找正则到输入框,点击「Find」确认所有匹配的点都是目标内容
  4. 在替换框输入-,点击「Replace All」完成批量替换

原正则问题说明

你之前使用的\"([a-zA-Z]+(\.)[a-zA-Z]+)+存在缺陷:重复的捕获组会被最后一次匹配覆盖,无法适配多组字母+点的结构,因此无法正确处理包含多个点的键或引用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 23:40:34