我困住了這個問題很長一段時間了,我無法找出一個正常的解決方案,與通常的谷歌搜索。我試圖評估一個字符串的格式,更確切地說,我正在檢查字符串是否是加拿大郵政編碼。麻煩正確評估一個字符串與NSRegularExpression和NSPredicate
於是我開始與此正則表達式,這要歸功於geeks with blogs
^[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。
我無法弄清楚= /我測試了正則表達式本身就帶有regex tester和它的罰款,並從我與谷歌的檢查這是怎麼一個字符串評估應該做的。我迷失在這裏。任何人有想法?
嘗試取出所有「'{1}」,因爲它們是不必要的。 –
@ acheong87非常感謝這個建議,我試過了,不幸的是我仍然得到= /中拋出的異常,但是謝謝你的建議! –