在 Swift 中转义反斜杠
Escaping backslash in Swift
我将正则表达式作为字符串值发送到 CloudKit,它似乎不喜欢它,将 \
替换为 \
。但是,一旦我从我的应用程序中获得此值,我想将其重新转换为原始形式,使用 \
而不是 \
。
我不知道如何在 Swift 中管理这种转义字符,因为我什至无法在我的代码中设置带有 \
的字符串,但我仍然能够管理它们从 CloudKit 获取它们时。这是字符串的示例:
var onlyOneBackslash: String = valueFromCloudKit
print(onlyOneBackslash) // booking\.com
如何转义反斜杠把booking\.com
转成booking\.com
?
双反斜杠仅存在于您的代码中,这是编译器的约定。它从不存在于字符串本身,只存在于 Swift 代码中。
如果你想在字符串中使用双反斜杠,你的代码中需要有四个反斜杠。或者使用 String 方法将单反斜杠替换为双反斜杠。
代码示例:
let originalString = "1\2"
print("originalString: \(originalString)")
let newString = originalString.stringByReplacingOccurrencesOfString("\", withString: "\\", options: .LiteralSearch, range: nil)
print("newString: \(newString)")
输出:
originalString: 1
newString: 1\2
Swift 5 个版本
let originalString = "1\2"
print("originalString: \(originalString)")
let newString = originalString.replacingOccurrences(of: "\", with: "\\")
print("newString: \(newString)")
replacingOccurrences(of: "\", with: "\\")
输出:
originalString: 1
newString: 1\2
我将正则表达式作为字符串值发送到 CloudKit,它似乎不喜欢它,将 \
替换为 \
。但是,一旦我从我的应用程序中获得此值,我想将其重新转换为原始形式,使用 \
而不是 \
。
我不知道如何在 Swift 中管理这种转义字符,因为我什至无法在我的代码中设置带有 \
的字符串,但我仍然能够管理它们从 CloudKit 获取它们时。这是字符串的示例:
var onlyOneBackslash: String = valueFromCloudKit
print(onlyOneBackslash) // booking\.com
如何转义反斜杠把booking\.com
转成booking\.com
?
双反斜杠仅存在于您的代码中,这是编译器的约定。它从不存在于字符串本身,只存在于 Swift 代码中。
如果你想在字符串中使用双反斜杠,你的代码中需要有四个反斜杠。或者使用 String 方法将单反斜杠替换为双反斜杠。
代码示例:
let originalString = "1\2"
print("originalString: \(originalString)")
let newString = originalString.stringByReplacingOccurrencesOfString("\", withString: "\\", options: .LiteralSearch, range: nil)
print("newString: \(newString)")
输出:
originalString: 1
newString: 1\2
Swift 5 个版本
let originalString = "1\2"
print("originalString: \(originalString)")
let newString = originalString.replacingOccurrences(of: "\", with: "\\")
print("newString: \(newString)")
replacingOccurrences(of: "\", with: "\\")
输出:
originalString: 1
newString: 1\2