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;
}