詳解iPhone SDK 4.0正則表達式
作者:佚名
iPhone SDK 4.0正則表達式是本文要介紹的內容,主要是來學習正則表達式的使用,具體內容先來看詳細內容。
iPhone SDK 4.0正則表達式是本文要介紹的內容,主要是來學習正則表達式的使用,具體內容先來看詳細內容。在iPhone程序使用正則表達式,主要以來于NSRegularExpression類。廢話不多說了,下面給個利用正則表達式來替換文本內容的代碼:
- //以替換html元素<a href="Xxxx">Yyyy</a>中的標簽為例。
- - (NSString *)removeTag:(NSString *)srcStr {NSError *error = nil;
- NSMutableString *dest = [NSMutableString stringWithCapacity:0];
- NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<a href=\".+?\">(.+?)</a>"
- options:NSRegularExpressionCaseInsensitive error:&error];
- NSRegularExpression *regex2 = [[NSRegularExpression alloc] initWithPattern:@"(?<=>).*?(?=</a>)"
- options:NSRegularExpressionCaseInsensitive error:nil];
- NSUInteger numberOfMatches = [regex numberOfMatchesInString:srcStr options:0 range:NSMakeRange(0, [srcStr length])];
- if (numberOfMatches != 0) {[dest appendString:srcStr];
- /*以下幾行是一個方法調用,有點長就分行了(本人一般不習慣分行的,即使巨長的一個方法調用,但是這個調用中有個方法定義做參數,所以……)。*/
- [regex enumerateMatchesInString:srcStr options:0 range:NSMakeRange(0, [srcStr length])
- usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop)
- {NSString *resultString = [srcStr substringWithRange:[result range]];
- NSString *link = [resultString substringWithRange:[[regex2 firstMatchInString:resultString options:0
- range:NSMakeRange(0, [resultString length])] range]];
- [dest replaceCharactersInRange:[result range] withString:link];
- }
- ];
- return
- [dest stringByReplacingOccurrencesOfString:@"<br />" withString:@""];
- }else
- {return [srcStr stringByReplacingOccurrencesOfString:@"<br />" withString:@""];
- }
- }//調用
- - (void)viewDidLoad {NSLog([self performSelector:@selector(removeTag:) withObject:@"this is <a href=\"www.baidu.com\">a</a> test!"]);
- }
輸出結果:
- this is a test!
小結:詳解iPhone SDK 4.0正則表達式的內容介紹完了,希望通過本文的學習能對你有所幫助!
責任編輯:zhaolei
來源:
互聯網