在目标C中使用正则表达式

时间:2014-05-08 10:01:20

标签: ios objective-c regex

这是第一次尝试使用正则表达式。我想匹配澳大利亚邮政编码(即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])];

2 个答案:

答案 0 :(得分:3)

你已经走上了正确的轨道,虽然你使用的模式并不正确,这就是为什么它会返回9场比赛。

这很容易解决:

([0-9]{4})

(\\d{4})

应该给你正确的结果: 2

答案 1 :(得分:0)

您应该使用正则表达式测试程序,例如http://regexpal.com/

原生iOS正则表达式非常笨拙和冗长。如果您使用正则表达式,我建议使用库,例如​​https://github.com/bendytree/Objective-C-RegEx-Categories