zoukankan      html  css  js  c++  java
  • 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!
  • 相关阅读:
    Dynamics CRM 给视图配置安全角色
    统计分析中的假设检验
    OLAP工作的基本概念(结合个人工作)
    Dynamics CRM 导入用户数据错误 could not retrieve salesperson role
    HTTP状态码汇总
    HTTP状态码汇总
    PHP超级全局变量——Session 变量
    PHP超级全局变量——Session 变量
    RESTful架构详解
    RESTful架构详解
  • 原文地址:https://www.cnblogs.com/lm3515/p/1962457.html
Copyright © 2011-2022 走看看