0
我需要用客觀的C.查找並與目標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]
有2個問題,這個解決方案:
1 - 我不能出現的次數取代
2 - 我認爲這是不加載近300MB文件時真的很快,因爲我將整個文件作爲字符串加載到內存中。
我如何獲得所做更換的次數,並優化我的解決方案,即使對於大文件也有良好的性能?
在此先感謝
解決方案:不要使用'NSRegularExpression',找到一個好的C庫。在那裏有更好的解決方案,並且爲了上帝的愛,使用'mmap'而不是將整個文件讀入'NSString'。 – 2012-07-30 16:40:11