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