以URL格式查找字符的索引/位置

时间:2013-01-17 00:39:59

标签: iphone ios objective-c ipad nsregularexpression

我有以下网址:

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

做错了什么

1 个答案:

答案 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