替换与拆分文本
使用正则表达式操作转换字符串。
替换与拆分文本 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 4 节课。
替换与拆分
正则表达式不仅用于匹配。Swift 字符串可以替换匹配到的文本,也可以根据模式拆分字符串,无需手动循环即可转换字符串。
replacing(_:with:)
replacing(_:with:) 会返回一个新字符串,其中模式的每个匹配项都被替换文本替换。
let s = "a1b2c3"
let cleaned = s.replacing(/\d/, with: "*")
print(cleaned)替换完整单词
模式可以是任意正则表达式,因此您可以一次性使用单个替换文本替换所有连续的数字。
let s = "order 1234 done"
let masked = s.replacing(/\d+/, with: "#")
print(masked)使用替换进行原地修改
replace(_:with:) 会直接修改一个 var 字符串,而不是返回副本。
var text = "hello world"
text.replace(/o/, with: "0")
print(text)使用闭包进行替换
replacing(_:with:) 的闭包形式会接收每个匹配结果并返回替换内容,从而支持计算替换内容。
let s = "a1 b2 c3"
let result = s.replacing(/\d+/) { match in
String((Int(match.0) ?? 0) * 10)
}
print(result)在替换中使用捕获结果
在闭包中,您可以读取匹配结果中的捕获组,以构建替换文本。
let s = "2024-05"
let out = s.replacing(/(\d+)-(\d+)/) { m in
"\(m.2)/\(m.1)"
}
print(out)split(separator:)
字符串支持将正则表达式传给 split(separator:),在模式匹配到的位置拆分字符串。
let csv = "a,b;c,d"
let parts = csv.split(separator: /[,;]/)
print(parts)按空白字符拆分
一个常见任务是:使用 /\s+/,根据任意连续的空白字符将字符串拆分为多个单词。
let line = "the quick brown"
let words = line.split(separator: /\s+/)
print(words.count)
print(words)限制拆分次数
maxSplits 参数会限制拆分次数,并保留剩余部分不变。
let s = "a-b-c-d"
let parts = s.split(separator: /-/, maxSplits: 1)
print(parts)修剪与替换
组合使用多个操作:先替换不需要的模式,再进行拆分,从而在处理流水线中清理并标记化输入。
let raw = " one,, two ,,three "
let cleaned = raw.replacing(/,+/, with: ",")
let items = cleaned.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces) }
print(items)replacing 与 replacingOccurrences
正则表达式版本的 replacing 作用于模式;较旧的 replacingOccurrences(of:with:) 只能处理字面子字符串。对于基于模式的编辑,请优先使用正则表达式版本。
let s = "cat hat bat"
print(s.replacing(/[ch]at/, with: "X"))快速检查
"a1b2".replacing(/\d/, with: "-") 会生成什么结果?
回顾
您可以使用 replacing(_:with:)(字符串形式或闭包形式)和原地 replace 来替换匹配结果,也可以使用 split(separator:) 和 maxSplits 根据正则表达式拆分字符串。这些功能将正则表达式变成了完整的文本转换工具集。
用 AI 导师学习 Swift — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 122
- 课程
- 409
常见问题解答
「替换与拆分文本」课时是免费的吗?
是的 — 「替换与拆分文本」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 4 节课。
「替换与拆分文本」这节课中我会学到什么?
使用正则表达式操作转换字符串。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Swift Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「替换与拆分文本」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Swift Academy 课中编写并运行代码吗?
能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。