私の目標は、複数の文字の指定されたプレフィックスで始まる(文字列内の)単語の数を数えることです。ケースは「non」で始まる単語です。したがって、この例では...
NSString * theFullTestString = @"nonsense non-issue anonymous controlWord";
...「ナンセンス」と「非発行」でヒットしたいのですが、「匿名」や「controlWord」ではヒットしません。ヒットの総数は2になるはずです。
これが私のテストコードですが、私が試した正規表現形式はどれも正しく機能しません。このコードは、「ナンセンス」(正しい)と「匿名」(間違っている)をキャッチしますが、「問題がない」(間違っている)はキャッチしません。その数は2ですが、間違った理由があります。
NSUInteger countOfNons = 0;
NSString * theFullTestString = @"nonsense non-issue anonymous controlWord";
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"non(\\w+)" options:0 error:&error];
NSArray *matches = [regex matchesInString:theFullTestString options:0 range:NSMakeRange(0, theFullTestString.length)];
for (NSTextCheckingResult *match in matches) {
NSRange wordRange = [match rangeAtIndex:1];
NSString* word = [theFullTestString substringWithRange:wordRange];
++countOfNons;
NSLog(@"Found word:%@ countOfNons:%d", word, countOfNons);
}
私は困惑しています。