NSRegularExpression字符串由。分隔

时间:2011-07-06 02:06:06

标签: objective-c ios regex cocoa-touch nsregularexpression

我有一个字符串,例如@"You've earned Commentator and 4 ##other$$ badges"。我想要检索由@"other"##分隔的子串$$。我做了一个像这样的NSRegularExpression:

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"##(.*)$$" options:NSRegularExpressionCaseInsensitive error:nil];

这完全忽略$$并返回以##开头的内容。我究竟做错了什么?感谢。

2 个答案:

答案 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)];
相关问题