我需要使用目标 C 在文件中执行查找和替换(使用正则表达式)。
我目前的解决方案是这样的:
NSString *string = [NSString stringWithContentsOfFile:sourceFile encoding:NSStringEncodingConversionAllowLossy error:nil];
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:[toFind stringValue] options:NSRegularExpressionCaseInsensitive error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:[toReplace stringValue]];
[modifiedString writeToFile:sourceFile atomically:YES]
这个解决方案有两个问题:
1 - 我无法替换出现的次数
2 - 我认为在加载近 300MB 的文件时这并不是很快,因为我将整个文件作为字符串加载到内存中。
我怎样才能获得替换的数量,并优化我的解决方案,即使是大文件也能获得良好的性能?
提前致谢