Поиск в строке по шаблону

Рейтинг: 0Ответов: 1Опубликовано: 05.09.2014

Здравствуйте.

У меня такой вопрос по поводу поиска в строке. Допустим, приходит нам длиннющая строка, и там встречается конструкция такого типа:

text = любой текст [ любой текст | любой текст ] любой текст

При чем в "любой текст" могут быть и любые символы, такие как [ | ]. И тут возникает вопрос КАК вытащить конструкцию "[ любой текст | любой текст ]" гуманным способом. Пытался с помощью предиката

NSString * string = @" * [ * | * ] *";

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like %@",string];

[predicate evaluateWithObject:text];

Но он всего лишь говорит, есть такое в строке или нет. А как вытащить, непонятно. Есть ли простой способ или нужно писать длиннющий алгоритм?

Ответы

▲ 1

Когда ж наконец-то вы все начнете читать справку? Достаточно же просмотреть справку NSString, там же есть спецметод:

 NSString *text =@"test text1 [ test text2 | test textт 3] test text 4";
    NSCharacterSet *separatorsSet =[NSCharacterSet characterSetWithCharactersInString:@"[|]"];
    NSArray *texts = [text componentsSeparatedByCharactersInSet:separatorsSet];
    NSLog(@"texts:\n %@",texts);