私は正規表現にかなり慣れていないので、それを学ぼうとしています。
これが私の文字列です:
Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)
そして、次のような配列に分割したいと思います。
@[@"Mozzila", @"4.0", @"compatible", @"MSIE 5.0", @"Windows NT", @"DigExt"];
これは私が試したコードです:
NSString *expression = @"Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)";
NSRegularExpression *testExpression = [NSRegularExpression regularExpressionWithPattern: @"([a-zA-Z]+)/([1-9.]+) \(([a-z]+); ([a-zA-Z .]+); ([a-zA-Z ]+); ([a-zA-Z]+)\)" options:NSRegularExpressionCaseInsensitive error:nil];
options:NSRegularExpressionCaseInsensitive error:nil];
NSArray *matches = [testExpression matchesInString:expression
options:0
range:NSMakeRange(0, [expression length])];
NSLog(@"%@",matches);
また試してみました:
[testExpression enumerateMatchesInString:expression
options:0
range:NSMakeRange(0, [expression length])
usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
NSLog(@"Value: %@", [expression substringWithRange:[result rangeAtIndex:1]]);
}];
また:
NSRegularExpression *testExpression = [NSRegularExpression
regularExpressionWithPattern: @"(\w+)/(\w+) \((\w+);([\w .]+); ([\w ]+); (\w+)\)" options:NSRegularExpressionCaseInsensitive
error:nil];
しかし、ログは空です。私は何を間違っていますか?