Arm*_*let 8 string escaping swift
我正在将正则表达式作为String值发送到CloudKit,它似乎不喜欢它,替换\\为\.但是,一旦我从我的应用程序中获取此值,我想以原始形式重新转换它,\\而不是\.
我不知道如何在Swift中管理这种转义字符,因为我甚至无法\在我的代码中设置一个字符串,但是当从CloudKit获取它们时我仍然可以管理它们.以下是String的示例:
var onlyOneBackslash: String = valueFromCloudKit
print(onlyOneBackslash) // booking\.com
Run Code Online (Sandbox Code Playgroud)
如何逃避反斜杠转换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)")
Run Code Online (Sandbox Code Playgroud)
输出:
originalString: 1\2
newString: 1\\2
Run Code Online (Sandbox Code Playgroud)