我想将对@me,@ you,@ them(twitter风格)等用户名的引用转换为链接。什么是正确的NSRegularExpression模式?
根据以下答案的输入,这是我最终使用的......
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?<!\\w)@([\\w\\._-]+)?" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *newString = [regex stringByReplacingMatchesInString:stringIn options:0 range:NSMakeRange(0, [stringIn length]) withTemplate:@"<a href='http://mydomain.com/$1'>$0</a>"];
这可能不适合Twitter,因为我自己的网站支持点,短划线和下划线
答案 0 :(得分:3)
(?<!\w)@\w+
应该非常安全。
(?<!\w)
被称为Negative Lookbehind,并确保@之前没有字符,以防止匹配电子邮件地址。
答案 1 :(得分:1)
@[a-zA-Z0-9_]+
应该很好地完成工作。
我建议在RegExr中抛出一些测试数据并摆弄正则表达式,以便完全符合您的需要。