今日は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 \nde」がログに記録されます。(「abcde」が表示されることを期待していました。)のような単純なパターン/[aeiou]/
を/a/
試しましたが、何を試しても、stringByReplacingMatchesInStringメソッドは実際には何も置き換えていないようです。私は何を見落としていますか?