我正在尝试使用以下模式。iOS中的正则表达式问题
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"#{{[[[0-9]{1,10}-[0-9]{1,10}-[0-9]{1,10}]]}}" options:0 error:&error];
NSString *originalMesssage = @"test #{{[[8-16-5]]}}";
NSArray *arrResults = [regex matchesInString:originalMesssage options:NSRegularExpressionCaseInsensitive
range:NSMakeRange(0, [originalMesssage length])];
我想用上面的正则表达式过滤后的“8-16-5”作为返回值。显然问题出在“{}”&“[]”字符。 我测试了与http://regexpal.com/相同的模式,它在那里工作得很好。 1)有没有通配符,我应该在我的上面的代码中使用?
参考文献:NSRegularExpression
以下是其最终为我工作的代码。
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"#\\{\\{\\[\\[[0-9]{1,10}-[0-9]{1,10}-[0-9]{1,10}\\]\\]\\}\\}" options:0 error:&error];
NSString *originalMesssage = @"test #{{[[8-16-5]]}}";
NSArray *arrResults = [regex matchesInString:originalMesssage options:NSRegularExpressionCaseInsensitive
range:NSMakeRange(0, [originalMesssage length])];
NSTextCheckingResult *match = [arrResults objectAtIndex:0];
NSRange matchRange = [match range];
NSString *resultString = [originalMesssage substringWithRange:matchRange];
请列出你目前的结果,而不是只是说“问题”。 – 2013-02-23 18:41:48
我在使用此代码后出现以下错误: Error Domain = NSCocoaErrorDomain Code = 2048“The operation could not be completed。(Cocoa error 2048.)”UserInfo = 0xa3529a0 {NSInvalidValue =#{{[[[0-9] {1,10} - [0-9] {1,10} - [0-9] {1,10}]]}}} – user130934 2013-02-23 18:44:02
@MikeM我想他可能只是英语不好......他可能是指他想要从字符串中返回“8-16-5”(所以RegEx去掉其他所有内容) – 2013-02-23 18:45:42