Я предполагаю, что это во многом связано с тем, что вы присваиваете автоматически выпущенный объект regex
в viewDidLoad
. Попробуйте добавить retain
или переместите строку в метод findWord
.
Regex
Неверное регулярное выражение для сопоставления всего между <
и >
. Правильный путь будет,
NSError *error = nil;
NSRegularExpression * regex = [NSRegularExpression regularExpressionWithPattern:@"(?<=<).*(?=>)" options:NSRegularExpressionCaseInsensitive error:&error];
if ( error ) {
NSLog(@"%@", error);
}
Заменить пробелом
Если вы хотите заменить совпавшую строку на " "
, вам не следует передавать $1
в качестве шаблона. Вместо этого используйте " "
в качестве шаблона.
NSString * modifiedString = [regex stringByReplacingMatchesInString:fileContents
options:0
range:NSMakeRange(0, [fileContents length])
withTemplate:@" "];