文字列内の単語を前方および後方に一致させようとしていますが、すべての一致をキャッチしていません。たとえば、文字列「AAABAAABAAA」で単語「AB」を検索する場合、正規表現 /AB|BA/ を作成して使用しますが、2 つの「AB」部分文字列のみに一致し、「BA」部分文字列を無視します。
iPhone で RegexKitLite を使用していますが、これはより一般的な正規表現の問題だと思います (オンラインの正規表現テスターでも同じ動作が見られます)。それにもかかわらず、一致を列挙するために使用しているコードは次のとおりです。
[@"AAABAAABAAA" enumerateStringsMatchedByRegex:@"AB|BA" usingBlock:
^(NSInteger captureCount,
NSString * const capturedStrings[captureCount],
const NSRange capturedRanges[captureCount],
volatile BOOL * const stop) {
NSLog(@"%@", capturedStrings[0]);
}];
出力:
AB
AB