我正在尝试检测以下表达式:$
例如
$john
或
$mike
我的正则表达式出了什么问题?
//Check for $symbol
NSRegularExpression *symbolRegex = [[NSRegularExpression alloc] initWithPattern:@"($[a-zA-Z0-9_]+)"
options:NSRegularExpressionCaseInsensitive
error:nil];
matches = [symbolRegex matchesInString:labelText options:0 range:NSMakeRange(0, [labelText length])];
for (NSTextCheckingResult *result in matches) {
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"symbol://%@",[labelText substringWithRange:result.range]]];
[bodyLabel addCustomLink:url inRange:[result range]];
}
[symbolRegex release];
答案 0 :(得分:3)
看起来你需要逃避$。
(\\$[a-zA-Z0-9_]+)
$(美元)
应用正则表达式模式的字符串末尾匹配。 匹配位置而不是角色。大多数正则表达口味都有 在换行符之前使美元匹配的选项(即在结束时) 一个文件中的一行)。也在最后一行之前匹配 如果字符串以换行符结束则中断。
由于它是特殊/保留字符,因此需要进行转义。