/ / Неможливо витягти рядок за допомогою NSRegularExpression (шаблон регулярного виразу) - iphone - iphone

Неможливо витягти рядок за допомогою NSRegularExpression (шаблон regex) - iphone - iphone

Я хочу витягти рядок між [] дужками

наприклад Оригінальний рядок: @ "це тест [для отримання цього рядка]."

Я хочу отримати рядок вилучення між [], тобто "отримати цей рядок" у цьому прикладі.

Будь ласка, знайдіть нижче мій код

NSMutableString *predicateString = [[NSMutableString alloc] initWithFormat:@"%@",@"this is a test [to get this string]."];

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[[^].]*]"
options:NSRegularExpressionCaseInsensitive
error:&error];


NSMutableArray *rangeArray = [[NSMutableArray alloc] init];
__block NSUInteger count = 0;
[regex enumerateMatchesInString:predicateString options:0 range:NSMakeRange(0, [predicateString length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){
NSRange matchRange = [match range];
matchRange.length = matchRange.length+1;
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
NSLog(@"matchRange.location: %d",matchRange.location);
NSLog(@"matchRange.length: %d",matchRange.length);

if (++count >= 100) *stop = YES;

}];

Будь ласка, дайте мені знати, чи я роблю щось не так.

Дякую.

Відповіді:

1 для відповіді № 1

Схоже, вираз неправильний, вам потрібно уникнути похилих рисок (наприклад: @"\[[^\].]*\]")