gpt4 book ai didi

swift - 在 Swift 中取消反斜杠

转载 作者:搜寻专家 更新时间:2023-10-31 21:53:08 24 4
gpt4 key购买 nike

我想取消转义用户输入字符串中的反斜杠,以将其用于正则表达式替换。

使用 NSRegularExpression.escapedTemplate(for: "\\n") 可以轻松转义反斜杠。这将按预期返回 "\\\\n"。但是,我如何向后转换它们,例如,将 \\n(反斜杠 + n)转换为 \n(返回)?

最佳答案

我认为不可能自动执行此操作,但是,由于 Swift 中只有少数转义字符,您可以将它们放入数组中,遍历它们,然后将所有实例替换为未转义的版本.这是我做的一个字符串扩展:

extension String {
var unescaped: String {
let entities = ["\0", "\t", "\n", "\r", "\"", "\'", "\\"]
var current = self
for entity in entities {
let descriptionCharacters = entity.debugDescription.characters.dropFirst().dropLast()
let description = String(descriptionCharacters)
current = current.replacingOccurrences(of: description, with: entity)
}
return current
}
}

要使用它,只需访问属性即可。例如,

print("Hello,\\nWorld!".unescaped) 

将打印

Hello,
World!

关于swift - 在 Swift 中取消反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39488488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com