详解iPhone SDK 4.0正则表达式

移动开发 iOS
iPhone SDK 4.0正则表达式是本文要介绍的内容,主要是来学习正则表达式的使用,具体内容先来看详细内容。

iPhone SDK 4.0正则表达式是本文要介绍的内容,主要是来学习正则表达式的使用,具体内容先来看详细内容。在iPhone程序使用正则表达式,主要以来于NSRegularExpression类。废话不多说了,下面给个利用正则表达式来替换文本内容的代码:

  1. //以替换html元素<a href="Xxxx">Yyyy</a>中的标签为例。  
  2. - (NSString *)removeTag:(NSString *)srcStr {NSError *error = nil;  
  3. NSMutableString *dest = [NSMutableString stringWithCapacity:0];  
  4. NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<a href=\".+?\">(.+?)</a>
  5. options:NSRegularExpressionCaseInsensitive error:&error];  
  6. NSRegularExpression *regex2 = [[NSRegularExpression alloc] initWithPattern:@"(?<=>).*?(?=</a>)" 
  7. options:NSRegularExpressionCaseInsensitive error:nil];
  8. NSUInteger numberOfMatches = [regex numberOfMatchesInString:srcStr options:0 range:NSMakeRange(0, [srcStr length])];  
  9. if (numberOfMatches != 0) {[dest appendString:srcStr];  
  10. /*以下几行是一个方法调用,有点长就分行了(本人一般不习惯分行的,即使巨长的一个方法调用,但是这个调用中有个方法定义做参数,所以……)。*/  
  11. [regex enumerateMatchesInString:srcStr options:0 range:NSMakeRange(0, [srcStr length]) 
  12. usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop)   
  13. {NSString *resultString = [srcStr substringWithRange:[result range]];  
  14. NSString *link = [resultString substringWithRange:[[regex2 firstMatchInString:resultString options:0 
  15. range:NSMakeRange(0, [resultString length])] range]];  
  16. [dest replaceCharactersInRange:[result range] withString:link];  
  17. }  
  18. ];  
  19. return   
  20. [dest stringByReplacingOccurrencesOfString:@"<br />" withString:@""];  
  21. }else   
  22.  {return [srcStr stringByReplacingOccurrencesOfString:@"<br />" withString:@""];  
  23. }  
  24. }//调用  
  25. - (void)viewDidLoad {NSLog([self performSelector:@selector(removeTag:) withObject:@"this is <a href=\"www.baidu.com\">a</a> test!"]);  

输出结果:

  1. this is a test!  

小结:详解iPhone SDK 4.0正则表达式的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2009-09-16 18:19:34

正则表达式组

2009-09-16 16:22:04

正则表达式匹配

2009-08-03 17:27:14

C#正则表达式

2009-09-16 17:29:30

正则表达式使用详解

2024-10-17 17:03:43

SQL正则表达式MySQL

2011-08-16 16:40:06

iPhone应用正则表达式OgreKit

2018-09-27 15:25:08

正则表达式前端

2009-09-16 14:32:43

PHP正则表达式替换

2011-08-23 17:46:09

LUA正则表达式模式

2020-09-04 09:16:04

Python正则表达式虚拟机

2024-09-14 09:18:14

Python正则表达式

2009-09-16 14:22:44

preg_match正

2019-07-25 17:00:44

Python正则表达式字符串

2009-08-20 16:23:32

C#正则表达式语法

2010-03-25 18:25:36

Python正则表达式

2016-11-10 16:21:22

Java 正则表达式

2009-09-16 17:15:57

正则表达式引擎

2022-01-04 11:35:03

Linux Shel正则表达式Linux

2023-09-13 08:12:45

2009-02-18 09:48:20

正则表达式Java教程
点赞
收藏

51CTO技术栈公众号