среда, 8 января 2014 г.

Objective C регулярные выражения. NSRegularExpression поиск совпадений

Конечно же в разработке мобильных приложений под IPhone Ipad встречаются случаи когда необходимо использовать регулярные выражения. Сегодня я опишу метод и саму работу с регулярными выражениями для поиска совпадений в тексте. Для начала реализуйте метод описанный в листинге наже:
//в качестве входного параметра мы передаём в метод текст в котором необходимо найти совпадния
-(NSArray*) getMatchesfromstr:(NSString *)text{
/*пускай мы будем искать в тексте маркировку бензина А92 или А95 или А 80*/
NSRegularExpression *nameExpression = [NSRegularExpression regularExpressionWithPattern:@"(A ?[0-9]{2})» options:NSRegularExpressionSearch error:nil];
NSArray *matches = [nameExpression matchesInString:text
options:0
range:NSMakeRange(0, [text length])];
//на выходе получим массив найденных элементов
return matches;
}
Как видите метод не сложный для понимая основан на использовании NSRegularExpression, Далее посмотрим сам вызов и использование метода.

Итак добавим следующий код в нужный вам метод:
NSString *text = @»Текст для проверки и поиска бензана A92 или же с пробелом А 80.»;
//собственно вызов метода
NSArray *matches = [self getMatchesfromstr:text];
// проверяем найдено ли что либо
if([matches count]>0){
//далее цикл перебора элементов
for (NSTextCheckingResult *match in matches) {
NSRange matchRange = [match rangeAtIndex:0];
NSString *matchString = [text substringWithRange:matchRange];
NSLog(@»%@»,matchString);
}
}
Вот собственно и все, мы нашли совпадения и вывели их в лог. Дальше как с ними работать вам решать.

Комментариев нет:

Отправить комментарий