我在这个问题上停留了很长一段时间,我无法通过通常的谷歌搜索找到合适的解决方案。我正在尝试评估字符串的格式,更准确地说,我正在检查该字符串是否为加拿大邮政编码。
所以我从这个正则表达式开始,感谢有博客的极客
^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1} *\d{1}[A-Z]{1}\d{1}$
之后,我以这种方式创建了一个 NSRegularExpression 的实例:
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1} *\\d{1}[A-Z]{1}\\d{1}$" options:NSRegularExpressionCaseInsensitive error:&error];
添加了用于转义的反斜杠。
然后我NSPredicate
用正则表达式做了一个
NSPredicate *regextest = [NSPredicate
predicateWithFormat:@"SELF MATCHES[cd] %@", regex];
最后,我正在评估字符串本身
[regextest evaluateWithObject:@"G2G 2S2"]
在最后一行,抛出异常。
NSInvalidArgumentException 无法从对象创建正则表达式
NSRegularExpression: 0x81e1bb0 ^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[AZ]{1} *\d{1}[AZ]{1}\d{1}$ 0x1。
我想不通=/我用正则表达式测试器测试了正则表达式本身,这很好,从我用谷歌检查的结果来看,这就是应该如何进行字符串评估。我在这里迷路了。有人有想法吗?