我正在尝试使用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的正则表达式吗?
由于
答案 0 :(得分:0)
请注意,如果您拥有有效的JSON,则可以使用带有Swift的JSON解析器。
要修复当前的正则表达式方法,可以使用
let pattern = "(?<=IPAddress\":\")[^\"]+"
模式详情
(?<=IPAddress\":\")
- 与IPAddress":"
substring [^\"]+
- 与"
以外的一个或多个字符匹配的否定字符类请参阅regex demo。