正則替換url字符串中的值

1、方法一:鍵和值一起替換

- (NSString *) paramValueOfUrl:(NSString *) url withParam:(NSString *) param value:(NSString *)value{
    
    NSError *error;

    NSString *targetString = [NSString stringWithFormat:@"%@=%@",param,value];

    NSString *regTags = [[NSString alloc] initWithFormat:@"%@=+([\\w]*)",param];

    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regTags options:0 error:&error];

    NSString *string = [regex stringByReplacingMatchesInString:url
                                                       options:0
                                                         range:NSMakeRange(0, [url length])
                                                  withTemplate:targetString];

    return string;
}

2、方法二: 值替換

/// 方法二:
- (NSString *) paramValueOfUrl2:(NSString *) url withParam:(NSString *) param value:(NSString *)value{

        NSError *error;
    
        //  (^|&|\\?|#)+%@=+([^&|#]*)(#|&|$) : range 取 [match rangeAtIndex:2]
        //  %@=+([^&|#]*)(#|&|$)   : range 取 [match rangeAtIndex:1]
        //  通過numberOfRanges獲取結果數(shù)量,然后分別打印獲取值 [url substringWithRange:[match rangeAtIndex:i]]
        NSString *regTags = [[NSString alloc] initWithFormat:@"(^|&|\\?|#)+%@=+([^&|#]*)(#|&|$)",param];
        NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regTags
                                                                               options:NSRegularExpressionCaseInsensitive
                                                                                 error:&error];
    
        // 執(zhí)行匹配的過程
        NSArray *matches = [regex matchesInString:url
                                          options:0
                                            range:NSMakeRange(0, [url length])];
        for (NSTextCheckingResult *match in matches) {
            NSRange range = [match rangeAtIndex:2];
            NSString *tagValue = [url substringWithRange:range];  // 分組2所對應的串
            if (![value isEqualToString:tagValue]) {
                url = [url stringByReplacingCharactersInRange:range withString:value];
            }
        }
        return url;
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,653評論 1 32
  • 官網 中文版本 好的網站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,712評論 0 5
  • 二、數(shù)學運算(math)函數(shù)2.1算術運算函數(shù)2.1.1rand()函數(shù):產生隨機數(shù)2.1.2abs()函數(shù)/la...
    問題餓閱讀 3,615評論 1 11
  • 五年,可能只有我自己知道。 我和他是在初三認識的,那時候分班,本來不在一個班的我們被分到了一起。剛開始還不是很熟...
    MemoJ閱讀 2,560評論 1 2
  • 1.感恩今天回家時剛好走到車站車就來了,一秒鐘都沒等,宇宙實在太愛我,賺大啦 2.感恩今天順利的把所有帳都對好,輕...
    小狐貍娃娃閱讀 208評論 0 0

友情鏈接更多精彩內容