IOS5 NSRegularExpression无法解析非常基本的表达式

时间:2012-08-16 07:43:59

标签: regex ios5 nsregularexpression

我想用items=14-35解析regex1435

我在PHP中使用/^items=([-\d,]+)$/并希望在iPhone项目中使用它。 我在这里查看了Apple的文档和类似问题,如NSRegularExpression

NSError *error = nil;
NSRegularExpression *regex = 
 [NSRegularExpression regularExpressionWithPattern:@"/^items=([-\\d,]+)$/"
                 options:NSRegularExpressionCaseInsensitive error:&error];

NSString *str = @"items=14-35";
NSTextCheckingResult *match = 
  [regex firstMatchInString:str 
         options:NSMatchingAnchored 
         range:NSMakeRange(0, [str length])];

NSLog(@"MATCH : %@",match);

以上代码输出NULLmatch.numberOfRanges = 0没有任何错误。

2 个答案:

答案 0 :(得分:2)

开头和结尾的分隔符斜杠不是正则表达式的一部分。从模式字符串中删除它们。

(有时,斜杠用于从末尾的标志界定正则表达式,但Cocoa不会这样做。因为你明确地传递了标志,所以不需要斜杠。)

答案 1 :(得分:0)

如果您要做的就是拆分字符串,您也可以使用componentsSeparatedByString

当然,如果您需要验证输入数据,正则表达式可能会更好。