这是第一次尝试使用正则表达式。我想匹配澳大利亚邮政编码(即4位数),但我的noOFMatches得不到。数字+1(在这种情况下为9)。我知道这是我无法弄清楚的傻事。请建议。 我觉得如果我通过4位数字。在邮政编码中,noOfMatches应该得到1。那是对的吗?
NSString *postCode = @"12345676";
NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:@"(|d{4})" options:NSRegularExpressionCaseInsensitive error:nil];
int noOfMatches = [ regularExpression numberOfMatchesInString:field.text options:0 range:NSMakeRange(0, [postCode length])];
答案 0 :(得分:3)
你已经走上了正确的轨道,虽然你使用的模式并不正确,这就是为什么它会返回9场比赛。
这很容易解决:
([0-9]{4})
或
(\\d{4})
应该给你正确的结果: 2
答案 1 :(得分:0)
您应该使用正则表达式测试程序,例如http://regexpal.com/
原生iOS正则表达式非常笨拙和冗长。如果您使用正则表达式,我建议使用库,例如https://github.com/bendytree/Objective-C-RegEx-Categories