我有一个字符串,例如@"You've earned Commentator and 4 ##other$$ badges"
。我想要检索由@"other"
和##
分隔的子串$$
。我做了一个像这样的NSRegularExpression:
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"##(.*)$$" options:NSRegularExpressionCaseInsensitive error:nil];
这完全忽略$$
并返回以##
开头的内容。我究竟做错了什么?感谢。
答案 0 :(得分:1)
多数民众赞成因为'$'是一个代表行尾的特殊字符。尝试\$\$
将其转义并告诉解析器您想要的字符。
答案 1 :(得分:1)
在这种情况下我不会使用正则表达式,因为字符串绑定非常简单。不需要编译表达式的开销。
NSString *source = @"You've earned Commentator and 4 ##other$$ badges";
NSRange firstDelimiterRange = [source rangeOfString:@"##"];
NSRange secondDelimiterRange = [source rangeOfString:@"$$"];
NSString *result = [source substringWithRange:
NSMakeRange(firstDelimiterRange.origin +2,
firstDelimiterRange.origin - secondDelimiterRange.origin)];