Как проверить строку на текст

Я хотел бы проверить строку, чтобы увидеть, если где-нибудь она содержит текст "привет". Я бы хотел, чтобы тест не учитывал заглавные буквы. Как я могу проверить эту строку?

5 ответов

Решение

Используйте приведенный ниже код в качестве ссылки, чтобы найти проверку подстроки в строке.

    NSString* string = @"How to test a string for text" ;
    NSString* substring  = @"string for" ;

    NSRange textRange;
    textRange =[string rangeOfString:substring  options:NSCaseInsensitiveSearch];

    if(textRange.location != NSNotFound)
    {

    //Does contain the substring
    }

-[NSString rangeOfString: options:] сделаю это.

NSRange range = [string rangeOfString:@"hello" options:NSCaseInsensitiveSearch];
BOOL notFound = range.location==NSNotFound;

Я предполагаю, что все слова разделены пробелом, и что здесь нет знаков препинания. Если есть пунктуация.

NSArray * dataArray = [inputString componentsSeparatedByString: @ ""];

for(int i=0; i<[dataArray count]){
 if([[dataArray objectAtIndex:i] isEqualToString:@"hello"]){
    NSLog(@"hello has been found!!!");
 } 
}

Я не проверял это, но это должно работать в теории.

Проверьте документы для способов удалить знаки препинания и сделать строку строчными. Это должно быть довольно просто.

Другие решения здесь хороши, но вы должны действительно использовать регулярное выражение,

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^(hello)*$"
                                                                   options:NSRegularExpressionCaseInsensitive
                                                                     error:&error];

Документы находятся здесь: http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html

Другие вопросы по тегам