我有以下字符串:
NSString *string = @"she seemed \x3cem\x3ereluctant\x3c/em\x3e to discuss the matter";
我希望最终字符串为:"she seemed reluctant to discuss the matter"
我有以下模式:
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"/\\x[0-9a-f]{2}/"
options:NSRegularExpressionCaseInsensitive
error:&error];
NSArray *matches = [regex matchesInString:string options:0 range:NSMakeRange(0, [string length])];
for (NSTextCheckingResult *match in matches) {
NSRange matchRange = [match range];
NSLog(@"%@", NSStringFromRange(matchRange));
}
但是,我收到一个错误,说模式无效。我做错了什么?
答案 0 :(得分:1)
您需要的模式是:
@"\\\\x[0-9a-f]{2}"
反斜杠对于Obj-C和RE解析器都是特殊的 - 所以你需要创建一个带有两个的Obj-C字符串,这样RE解析器就可以得到一个。
字符串中也没有打开/关闭分隔符 - 你在考虑另一种编程语言!
答案 1 :(得分:-1)
使用NSString方法
可以节省一些正则表达式的麻烦stringByReplacingOccurrencesOfString:withString:
或者
stringByReplacingOccurrencesOfString:withString:选择:范围: