0

我有以下网址:

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 上做错了什么

4

1 回答 1

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/"];

如果您希望保留包含原始 URL 的字符串不可变,则有一个等效-stringByReplacingMatchesInString:options:range:withTemplate:项。NSStrings

于 2013-01-17T00:47:39.250 回答