Моя строка выглядит следующим образом:
dog-3
dog-2
dog-1
dog0
aaaaaaa
dog1
dog2
dog3
dog4
bbbbbbb
dog5
dog6
dog7
dog8
ccccccc
dog9
dog10
dog11
aaaaaaa
dog12
dog13
dog14
dog15
bbbbbbb
dog16
dog17
dog18
dog19
ccccccc
dog20
dog21
dog22
dog23
Я пытаюсь написать регулярное выражение, соответствующее шаблону "^ aaaaaaa $. + ^ Bbbbbbb $. + ^ ccccccc" Это мой код где str описан выше
NSRegularExpression *conflictMarker = [NSRegularExpression regularExpressionWithPattern:@"^aaaaaaa$.+^bbbbbbb$.+^ccccccc"
options:NSRegularExpressionDotMatchesLineSeparators|NSRegularExpressionAnchorsMatchLines
error:&error];
[conflictMarker enumerateMatchesInString:str options:0
range:NSMakeRange(0, str.length)
usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
NSRange matchRange = [result range];
NSString *subst = [str substringWithRange:matchRange];
NSInteger a = result.numberOfRanges;
NSLog(@"%ld ", a);
for (NSInteger a = 0; a < result.numberOfRanges; a++) {
NSRange matchRange = [result rangeAtIndex:a];
NSString *subst = [str substringWithRange:matchRange];
NSLog(@"\n%@", subst);
}
}];
Я ожидал от кода выше получить два совпадения; первый матч содержит диапазон от «dog1» до «dog8», а второй диапазон от «dog12» до «dog19», но я получаю только 1 матч с диапазоном от «dog1» до «dog19».
Что я делаю что-то не так и как я могу это исправить?
Заранее спасибо.