2013-06-01 2 views
0

У меня есть NSString и я пытаюсь найти первое местоположение любой из трех строк @ "aaa" и @ "bbb" и @ "ccc".Поиск различных подстрок в NSString

range = [text rangeOfString:@"aaa" options:NSCaseInsensitiveSearch range:NSMakeRange(rangeStart, rangeLength)]; 

Есть ли простой способ добавить логический оператор (или) к методу rangeOfString:? Я попробовал rangeOfString:(@"aaa" || @"bbb" || @"ccc"), но он исключил исключение. Или есть простой способ обхода проблемы. Благодарю.

ответ

2

Использование регулярных выражения

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(aaa|bbb|ccc)" options:0 error:NULL]; 
NSTextCheckingResult *match = [regex firstMatchInString:text options:0 range:NSMakeRange(0, [text length])]; 

Надеется, что это помогает ...

+0

Совершенного, работает! Благодарю. – Pete

0
[[NSRegularExpression regularExpressionWithPattern: @"(aaa|bbb|ccc)" options: NSRegularExpressionCaseInsensitive error: &error] rangeOfFirstMatchInString: text options: 0 range: NSMakeRange(rangeStart, rangeLength)] 
Смежные вопросы