由於Apple現在似乎拒絕鏈接到libicucore的應用程序(例如使用RegexKitLite的應用程序),從iPhone應用程序中獲取具有捕獲組功能的正則表達式的最佳方法是什麼?是否應該靜態編譯ICU或PCRE(可能使用RegexKit PCRE包裝器)?iPhone正則表達式捕獲組
2
A
回答
1
有關使用RegexKitLite導致應用程序被拒絕的更多信息,請參閱this cocoa-dev post。
簡短的回答是,仍然可以使用RegexKitLite和不遭到拒絕。
0
我通過與第一基取代的命中獲得經由NSRegularExpression第一組:
字符串= 「ABCDE」 圖案= 「B(C)」。 =>觸及= 「BCD」 =>組= 「C」
NSRegularExpression* regex=[NSRegularExpression regularExpressionWithPattern:pattern options:0 error:nil];
NSRange range=[regex rangeOfFirstMatchInString:self options:0 range:NSMakeRange(0, [self length])];
String hit=[self substringWithRange:range];
return [regex stringByReplacingMatchesInString:hit options:0 range:NSMakeRange(0, [hit length]) withTemplate:@"$1"];
+0
NSRegularExpression在iOS 4.0+中可用,所以它不適用於iOS3.0 +型號。 – 2011-04-15 11:51:11
相關問題
- 1. 正則表達式捕獲組
- 2. 正則表達式捕獲組
- 3. Java正則表達式非捕獲組
- 4. 捕獲組正則表達式
- 5. Perl正則表達式捕獲分組
- 6. 正則表達式和捕獲組
- 7. 猛砸正則表達式捕獲組
- 8. 正則表達式捕獲組
- 9. PHP正則表達式 - 多組捕獲
- 10. Posix正則表達式非捕獲組
- 11. 正則表達式 - 從捕獲組
- 12. 正則表達式:捕獲組(Perl的)
- 13. 正則表達式 - 重複捕獲組
- 14. 正則表達式捕獲組
- 15. 正則表達式,捕獲組
- 16. 正則表達式 - 捕獲組混淆
- 17. 非捕獲組正則表達式
- 18. C#正則表達式捕獲組
- 19. 正則表達式組捕獲代
- 20. 正則表達式捕獲組子串
- 21. 提振正則表達式捕獲組
- 22. 正則表達式:捕獲,組,混淆
- 23. URL正則表達式組捕獲
- 24. 用JavaScript正則表達式捕獲組
- 25. 正則表達式,在捕獲組
- 26. java正則表達式捕獲組
- 27. 正則表達式捕獲組迅速
- 28. 正則表達式在Vala捕獲組
- 29. 正則表達式與非捕獲組
- 30. 正則表達式擺脫捕獲組
謝謝你,這是一個很大的幫助,我從來沒有見過這種反應。我已經[建立和靜態鏈接PCRE](http://github.com/hadronzoo/build-pcre-iphone)併爲它寫了一個包裝器,但我會考慮將來的項目使用RegexKitLite。 – hadronzoo 2010-06-30 19:45:24
使用PCRE的問題之一是它只能在UTF8編碼的文本上運行(假設你需要Unicode,你可能會這麼做)。另一方面,NSStrings使用UTF-16作爲邏輯抽象。這意味着兩個「範圍」不能混爲一談。例如,PCRE中匹配的範圍將是UTF8字節偏移量。對於NSString,相同範圍的字符將是UTF-16字符偏移量。 UTF8每個Unicode代碼點需要1〜5個字節,但UTF-16使用16位字符,這可以在1個16位單元中代表大部分Unicode。 – johne 2010-07-01 00:21:07
PCRE提供了一些函數來提取範圍作爲cstrings和NString有很好的支持轉換和UTF-8轉換。儘管複製匹配效率較低,但我還沒有發現它對於我的應用程序很重要。 – hadronzoo 2010-07-01 05:15:07