我有以下网址:
http://test.me/s/hq6aN
我基本上想用d替换s,使用NSRegularExpression轻松完成此操作的最佳方法是什么?基本上我想要的是弄清楚字符串中/ s /的索引是什么意思?
这是我到目前为止所拥有的:
NSString *regexStr = @"/s/";
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regexStr options:0 error:&error];
NSArray *matches = [regex matchesInString:shortLink options:0 range:NSMakeRange(0, [shortLink length])];
if ([matches count] > 0){
NSTextCheckingResult *matchesIndex = [matches objectAtIndex:0];
NSRange range = matchesIndex.range;
}
我很确定我在使用regexStr
做错了什么答案 0 :(得分:0)
您的模式看起来很好,但是有一种方便的搜索和替换方法,可以让您更简洁地写出:
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"/s/" options:0 error:&error];
NSMutableString *haystack = [NSMutableString stringWithString:@"http://test.me/s/hq6aN"];
[regex replaceMatchesInString:haystack options:0 range:NSMakeRange(0, [haystack length]) withTemplate:@"/d/"];
如果您希望保持包含原始网址的字符串不可变,则-stringByReplacingMatchesInString:options:range:withTemplate:
有一个等效的NSStrings
。