String Swift中的逃逸反斜杠

String Swift中的逃逸反斜杠,string,swift,escaping,String,Swift,Escaping,我将正则表达式作为字符串值发送到CloudKit,它似乎不喜欢它,将\\替换为\。然而,一旦我从我的应用程序中得到这个值,我想用\而不是\重新转换它的原始形式 我不知道如何在Swift中管理此类转义字符,因为我甚至无法在代码中设置带有\的字符串,但从CloudKit获取它们时,我仍然能够管理它们。以下是字符串的示例: var onlyOneBackslash: String = valueFromCloudKit print(onlyOneBackslash) // booking\.com

我将正则表达式作为字符串值发送到CloudKit,它似乎不喜欢它,将
\\
替换为
\
。然而,一旦我从我的应用程序中得到这个值,我想用
\
而不是
\
重新转换它的原始形式

我不知道如何在Swift中管理此类转义字符,因为我甚至无法在代码中设置带有
\
的字符串,但从CloudKit获取它们时,我仍然能够管理它们。以下是字符串的示例:

var onlyOneBackslash: String = valueFromCloudKit
print(onlyOneBackslash) // booking\.com

如何避开反斜杠将
booking\.com
转换为
booking\.com

双反斜杠只存在于代码中,这是编译器的惯例。它从不存在于字符串本身中,只存在于Swift代码中

如果要在字符串中使用双反斜杠,则需要在代码中使用四个反斜杠。或者使用字符串方法将单个反斜杠替换为双反斜杠

代码示例:

let originalString = "1\\2"
print("originalString: \(originalString)")
let newString = originalString.stringByReplacingOccurrencesOfString("\\", withString: "\\\\", options: .LiteralSearch, range: nil)
print("newString: \(newString)")
输出:

originalString: 1\2  
newString: 1\\2  
originalString: 1\2  
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\2  
newString: 1\\2  
originalString: 1\2  
newString: 1\\2  

如果要将“1\2”值设置为字符串变量,该怎么办?如果需要在字符串中包含“\”,只需将其转义为“\”。请参阅并滚动到字符串文本中的特殊字符。感谢您的回复Zaph,实际上问题是我想将“\/Date(1310669017000)\/”作为参数发送给某些web服务,如果我使用\\转义它将以“\\/Date(1310669017000)\/”而不是“\/Date(1310669017000)\/”的形式发送该参数。I thing escape仅适用于print()。这里有两种功能。1.将“\”放在字符串中,在代码中创建为文本时需要转义几个字符。2.URL编码URL的某些字符。可能有一些重叠。对于URL编码,请参见此。实际上,我必须将“\/Date(1310669017000)\/”参数作为POST发送,因为我没有在URL中对其进行编码。