Ios “查找并检测”@&引用;及#&引用;使用NSRegularExpression

Ios “查找并检测”@&引用;及#&引用;使用NSRegularExpression,ios,regex,nsregularexpression,Ios,Regex,Nsregularexpression,我试图在我的文本中找到“@”和“#”符号,并使用NSRegularExpression这样的符号 NSString *testString = @"This text contains @ and # signs"; NSRange stringRange = NSMakeRange(0, [testString length]); NSRegularExpression *regexTest = [[NSRegularExpression alloc] initWithPattern:@"\\

我试图在我的文本中找到“@”和“#”符号,并使用
NSRegularExpression
这样的符号

NSString *testString = @"This text contains @ and # signs";
NSRange stringRange = NSMakeRange(0, [testString length]);
NSRegularExpression *regexTest = [[NSRegularExpression alloc] initWithPattern:@"\\b(@|#)\\b"];
NSRange nameRange = [regexTest rangeOfFirstMatchInString:testString options:0 range:stringRange];

当我输入NSLog
nameRange.location
时,它总是返回0。使用
NSRegularExpression
进行签名的正确形式是什么?

这就是我使用
NSPredicate
进行签名的方式。这将告诉您当前正在编辑/键入的@提及单词。希望这有帮助

- (void)textViewDidChange:(UITextView *)textView
{
    _words = [self.textView.text componentsSeparatedByString:@" "];
    NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SELF BEGINSWITH[cd] '@'"];
    NSArray* names = [_words filteredArrayUsingPredicate:predicate];
    if (_oldArray)
    {
        NSMutableSet* set1 = [NSMutableSet setWithArray:names];
        NSMutableSet* set2 = [NSMutableSet setWithArray:_oldArray];
        [set1 minusSet:set2];
        if (set1.count > 0)
            NSLog(@"Results %@", set1);
    }
    _oldArray = [[NSArray alloc] initWithArray:names];
}

很抱歉,这是复制/粘贴错误,我已修复?