【发布时间】:2018-04-06 23:27:51
【问题描述】:
我正在尝试使用 NSRegularExpression(pattern: regex) 在字符串中提取 10.32.15.235:\"IPAddress\":\"10.32.15.235\",\"WAN\" 使用 Swift 3。
但是,我在 answer 中使用此函数时遇到错误
func matches(for regex: String, in text: String) -> [String] {
do {
let regex = try NSRegularExpression(pattern: regex)
let nsString = text as NSString
let results = regex.matches(in: text, range: NSRange(location: 0, length: nsString.length))
return results.map { nsString.substring(with: $0.range)}
} catch let error {
print("invalid regex: \(error.localizedDescription)")
return []
}
}
有了这个电话:
let pattern = "IPAddress\\\":\\\"(.+?)\\"
let IPAddressString = self.matches(for: pattern, in: stringData!)
print(IPAddressString)
但是,函数的错误部分被调用时出现这个错误:
无效的正则表达式:值“IPAddress\":\"(.+?)\”无效。
你能帮我修改 Swift 3 的正则表达式吗?
谢谢
【问题讨论】:
-
看起来它最后缺少一个转义的双引号。尝试在模式末尾添加
\"。 -
使用
let pattern = "(?<=IPAddress\":\")[^\"]+" -
它是否如您所愿?
标签: regex swift3 nsregularexpression