2014-09-14 1 views
0

Прошу простить меня за мою любовь, но у меня возникли проблемы с созданием шаблона для игнорирования слов, начинающихся с символа хэштега # или символа упоминания @. Я знаю, что для выбора слов, начинающихся с хэштегов, я могу сделать # (\ w +) и выбрать слова, начиная с упоминаний, которые я могу сделать @ (\ w +).Игнорировать слова, начинающиеся с хэштега или ссылки

Я попытался сделать что-то вроде этого (?! @ (\ W +)), чтобы игнорировать упоминания и это (?! # (\ W +)), чтобы игнорировать хэштеги, но не повезло. Я буду стараться и искать любую помощь.

Я хочу создать шаблон, который:! (Hashtags) AND! (Упоминает) Или шаблон, который выбирает только слова.

ответ

1

Попробуйте это:

NSMutableArray *words = [[text componentsSeparatedByString:@" "] mutableCopy]; 
for (NSString *word in words) 
{ 
    NSString *firstCharacter = [word substringToIndex:1]; 
    if ([firstCharacter isEqual:@"#"] || [firstCharacter isEqual:@"@"]) 
    { 
     // remove the word from the array here or whatever 
     [words removeObject:word]; 
    } 
} 
+0

Большое спасибо! Я немного изменил, но это и помогло. Спасибо! – SuperKevin

0

Вот решение, которое работает для меня на основе ответа, предоставленной freshking

- (NSMutableArray *) checkForWords:(UITextField *)textField { 
    NSMutableArray *words = [[NSMutableArray alloc] initWithArray:[[textField.text componentsSeparatedByString:@" "] mutableCopy]]; 
    NSMutableArray *matches = [[NSMutableArray alloc] init]; 
    //NSLog(@"words: %@",words); 

    for (NSString *word in words) { 
     NSString *firstCharacter = [word substringToIndex:1]; 
     if (![firstCharacter isEqual:@"#"] && ![firstCharacter isEqual:@"@"]) { 
      [matches addObject:word]; 
     } 
    } 

    return matches; 
}