Мне нелегко заставить мое регулярное выражение работать. Я пишу приложение, которое делает тегирование в разделе комментариев, поэтому каждый раз, когда есть символ @, мне нужно посмотреть следующий текст, чтобы сделать ссылку из него. То есть что делают Instagram и Twitter.iOS regex сопоставление не-пробельных символов до первого символа без слова после символа @
Ниже мое регулярное выражение, мне нужно получить все записи регулярного выражения, которое соответствует этим критериям: @, за которым следует любой буквенно-цифровой символ, и заканчивается, когда он попадает в пробел или другой символ @.
NSString *searchedString = cellComment.commentText;
NSRange searchedRange = NSMakeRange(0, [searchedString length]);
NSString *pattern = @"@.+[^\s]";
NSError *error = nil;
NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern: pattern options:0 error:&error];
NSArray* matches = [regex matchesInString:searchedString options:0 range: searchedRange];
for (NSTextCheckingResult* match in matches) {
NSString* matchText = [searchedString substringWithRange:[match range]];
for(int i = 0; i< match.numberOfRanges;i++)
{
NSRange group1 = [match rangeAtIndex:i];
NSLog(@"group1: %@%lu", [searchedString substringWithRange:group1],group1.location);
}
}
Try '@ "@ \\ S +"'. Или '@" @ \\ S + \\ b "'. Для Twitter, '@ \\ w +' должен делать. –
Вам следует откат к версии сообщения, где вы показывали свое регулярное выражение. –
Я откатился к первой версии, потому что в противном случае это звучит как дубликат [* Regex, чтобы найти слова, начинающиеся с определенного символа *) (http://stackoverflow.com/questions/2678666/regex-to-find- слова-что-старт-с конкретным-символом). Проблема заключается не в том, что OP не знает шаблон для '@' + что-то, кроме использования сокращенных классов символов и способ сопоставления небелых символов до первого символа, отличного от слова. –