如果有任何未转义的撇号,我想检查NSString(json),但即使正则表达式正确,NSPredicate也找不到它。
这是我的代码:
NSString* regx = @"[^\\\\]'";
NSPredicate* p = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regx];
if([p evaluateWithObject:json]){
//gotit
...
我知道有些撇号没有被转义,但NSPredicate却找不到它。
知道如何解决这个问题吗?
另外,如果我看一下json,我会看到撇号为\ u0027。
答案 0 :(得分:0)
“SELF MATCHES ...”尝试匹配整个字符串,因此您必须使用正则表达式
NSString* regx = @".*[^\\\\]'.*";
可替换地:
NSString* regx = @"[^\\\\]'";
NSRange r = [json rangeOfString:regx options:NSRegularExpressionSearch];
if (r.location != NSNotfound) {
…
}
但问题仍然是为什么这是必要的。 NSJSONSerialization
应该处理
所有逃脱和引用正确。
答案 1 :(得分:0)
这是适用于我的正则表达式:
.*[^\\\\]\\\\u0027.*