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

如何将文件中所有键对应的值替换为键本身 可使用Xcode/Swift实现

解决方案

方案1:Xcode 内置正则全局替换(最快捷,无需额外代码)

  1. 在Xcode中打开目标键值对文件
  2. 点击编辑器顶部查找栏的查找选项,将匹配模式从「Text」切换为「Regular Expression」(正则匹配)
  3. 查找框输入正则表达式:^"([^"]+)"\s*=\s*"[^"]*";?$
  4. 替换框输入替换模板:"$1" = "$1";(如果原文件行尾无分号,去掉模板末尾的分号即可)
  5. 点击「Preview」确认匹配结果符合预期后,点击「Replace All」即可完成批量替换,4000行内容可秒级处理完成。

方案2:Swift 本地脚本(适合多文件批量处理场景)

如果需要频繁处理同类文件,可以写一个轻量Swift脚本一次性处理:

  1. 新建空白文件命名为replace.swift,写入如下代码:
import Foundation

// 替换为你的目标文件实际路径,多文件可循环处理路径列表
let targetFilePath = "/Users/xxx/Project/Localizable.strings"
let matchRegex = try! NSRegularExpression(
    pattern: "^\"([^\"]+)\"\\s*=\\s*\"[^\"]*\";?$",
    options: .anchorsMatchLines
)

do {
    let rawContent = try String(contentsOfFile: targetFilePath, encoding: .utf8)
    let processedContent = matchRegex.stringByReplacingMatches(
        in: rawContent,
        range: NSRange(rawContent.startIndex..., in: rawContent),
        withTemplate: "\"$1\" = \"$1\";"
    )
    try processedContent.write(toFile: targetFilePath, atomically: true, encoding: .utf8)
    print("处理完成,共\(rawContent.components(separatedBy: .newlines).count)行")
} catch {
    print("处理失败:\(error.localizedDescription)")
}
  1. 打开终端进入脚本所在目录,执行命令:swift replace.swift即可运行脚本完成替换。

注意事项

  • 操作前请先备份原文件,避免规则匹配异常导致内容损坏
  • 若你的键值对格式和示例存在差异,可自行调整正则表达式适配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:06:07