杂七杂八篇动态库iOS进阶

(iOS)用正则去替换字符串中的字符

2016-07-08  本文已影响2063人  三生石畔
<p>九朝古都是[[洛阳|开封|西安]]</p><p>六朝古都是[[洛阳|西安]]</p>

这样的一个字符串中的[[洛阳|开封|西安]]字符替换成一个其他的字符串,而且字符串里面不止有仅仅一个这种字符。

  ///
//*  /替换掉[[]]  以及[[]]里面的字符串
//*
//*  @param string 原始字符串
//*
//*  @return 得到的新的字符串
//*/
- (NSString *)str:(NSString *)string replaceStr:(NSString *)replaceStr{
    NSString *newString = string;
    if ([string rangeOfString:@"[["].location != NSNotFound||[string rangeOfString:@"]]"].location != NSNotFound) {
        NSArray  * arr = [string  componentsSeparatedByString:@"[["];
        string  = arr[1];
        NSArray  * arr1 = [string  componentsSeparatedByString:@"]]"];
        string = arr1[0];
        string = [NSString stringWithFormat:@"[[%@]]",string];
    }
    newString = [newString stringByReplacingOccurrencesOfString:string withString:replaceStr];
    return newString;
}

可是这种方法只能满足该方法只能满足里面只有一个这种样式的字符[[哈哈哈]],才能够替换成功

- (NSString  *)string:(NSString *)string  replaceStr:(NSString *)replaceStr{

    NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:

                                              @"\\[{2}([\u4E00-\u9FFF]+)+((\\|){1}([\u4E00-\u9FFF]+))*\\]{2}" options:0 error:nil];
    string  = [regularExpression stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, string.length) withTemplate:replaceStr];
     return string;
}

- (NSString  *)string:(NSString *)string  replaceStr:(NSString *)replaceStr{

    NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:
                                                  @"\\[{2}.*?\\]{2}"
                                                                                       options:0 error:nil];


    string  = [regularExpression stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, string.length) withTemplate:replaceStr];
     return string;
}
上一篇 下一篇

猜你喜欢

热点阅读