ios 使用正则表达式

通过NSRegularExpression进行匹配字符串。

正则写的不好,分开几条。

首先替换修改table的width.

接着修改td的高度

最后在td数据上增加 font

在手机上看起来会更美观点。


比较详细点的可以查看 点击打开链接

直接发代码好了

    sHTML = [sHTML stringByReplacingOccurrencesOfString:@"\n\t" withString:@""];
    NSError *error = nil;
    //width
    NSString *sReg = @"width: (\\d+)px;";
    NSRegularExpression * reg = [NSRegularExpression regularExpressionWithPattern:sReg
                                                                          options:NSRegularExpressionCaseInsensitive
                                                                            error:&error];
    
    if (error == nil && reg)
    {
        NSArray *match = [reg matchesInString:sHTML
                                      options:NSMatchingReportProgress
                                        range:NSMakeRange(0, sHTML.length)];
        if ([match count] > 0)
        {
            sHTML = [reg stringByReplacingMatchesInString:sHTML
                                                  options:NSMatchingReportProgress
                                                    range:NSMakeRange(0, sHTML.length)
                                             withTemplate:@"width: 640px;"];
        }
    }
    
    //height
    NSString *stdHeight = @"height: (\\d+)px; ";
    NSRegularExpression *regHeight = [NSRegularExpression regularExpressionWithPattern:stdHeight
                                                                               options:NSRegularExpressionCaseInsensitive
                                                                                 error:&error];
    if ( error == nil && regHeight)
    {
        sHTML = [regHeight stringByReplacingMatchesInString:sHTML
                                                    options:NSMatchingReportProgress
                                                      range:NSMakeRange(0, sHTML.length)
                                               withTemplate:@"height: 45px;"];
    }
    
    //add font
    NSString *sTDReg = @"<td.*>(.*)</td>";
    NSRegularExpression *replaceReg = [NSRegularExpression regularExpressionWithPattern:sTDReg
                                                                                options:NSRegularExpressionCaseInsensitive
                                                                                  error:&error];
    
    NSMutableString *sNewHTML = [NSMutableString stringWithString:sHTML];
    if (error == nil && replaceReg )
    {
        NSArray *match = [replaceReg matchesInString:sHTML
                                             options:NSMatchingReportProgress
                                               range:NSMakeRange(0, sHTML.length)];
        if ([match count] > 0)
        {
            NSInteger nIndex = 0;
            for (NSTextCheckingResult *result in match)
            {   
                NSString *sString = [sHTML substringWithRange:[result rangeAtIndex:1]];
                NSString *sReplaceString = [NSString stringWithFormat:@"<font size=\"6\">%@</font>", sString];
                NSRange range = [result rangeAtIndex:1];
                [sNewHTML replaceCharactersInRange:NSMakeRange(range.location + nIndex, range.length)
                                        withString:sReplaceString];
                nIndex += sReplaceString.length - sString.length;
            }
        }
    }
    
    [sNewHTML replaceOccurrencesOfString:@"\t"
                              withString:@""
                                 options:NSCaseInsensitiveSearch
                                   range:NSMakeRange(0, sNewHTML.length)];
    CC(@"replace html : %@", sNewHTML);
    
    return sNewHTML;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值