我今天正在修补 Objective-C,但我遇到了一些奇怪的行为。基本上我试图从 NSString 替换所有非字母小写字符。我基本上归结为:
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSError *error;
NSRegularExpression *pattern = [[NSRegularExpression alloc] initWithPattern:@"/[^abcdefghijklmnopqrstuvwxyz]/" options:0 error:&error];
NSString *replacableStuff = @"a b c\nd e";
NSLog(@"%@", [pattern stringByReplacingMatchesInString:replacableStuff options:0 range:NSMakeRange(0, [replacableStuff length]) withTemplate:@""]);
}
return 0;
}
但是,替换似乎从未发生过;运行此日志“abc\nd e”到日志事物。(我期待看到“abcde”。)我尝试了更简单的模式,例如/[aeiou]/
,甚至只是/a/
,但无论我尝试什么,stringByReplacingMatchesInString 方法似乎实际上并没有替换任何东西。我在看什么?