我正在尝试在swift中编写一个JSON解析器。我正在编写用于解析JSON代码的不同部分的函数。我编写了一个字符串解析器,它检测JSON数据中的字符串,通过检查开头的\“,如果我遇到另一个\”,它被分离并作为字符串返回但是当我遇到这个JSON文本时:
{"gd$etag": "W\/\"D0QCQX4zfCp7I2A9XRZQFkw.\""}
我编写的函数在上面的例子中失败了,因为在值部分它必须将整体识别为String而我的工作只收集
W\/
因为我把条件作为开始和结束时使用\“ 当我在网上搜索时,我明白它与正则表达式有关。所以帮我解决这个问题!
答案 0 :(得分:1)
这是你在找什么?
import Foundation
let str: NSString = "W\\/\\\"D0QCQX4zfCp7I2A9XRZQFkw.\\\""
let regex = "\\\\\".*\\\\\""
// Finds range that starts with \" and ends with \"
let range = str.rangeOfString(regex, options: .RegularExpressionSearch)
let match: NSString = str.substringWithRange(range)
//Removes the \" from the start and end.
let innerString = match.substringWithRange(NSMakeRange(2, match.length-4))