Escaping backslash in Swift

拜拜、爱过 提交于 2019-12-05 22:32:09

问题


I'm sending regular expressions to CloudKit as a String value and it doesn't seem to like it, replacing \\by \. However, once I'm getting this value from my app I would like to retransform it in its original form, with \\instead of \.

I don't know how to manage this kind of escaped characters in Swift because I cannot even set a String with a \ in my code but I'm still able to manage them when getting them from CloudKit. Here is an example of String:

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

How to escape the backslash to transform booking\.com into booking\\.com?


回答1:


The double backslash exists only in your code, it is a convention of the compiler. It never exists in the string itself, just in the Swift code.

If you want a double backslash in the string you need to have four backslashes in your code. Or use a String method to replace single backslashes with double backslashes.

Code example:

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

Output:

originalString: 1\2  
newString: 1\\2  


来源:https://stackoverflow.com/questions/32119119/escaping-backslash-in-swift

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!