0

私は次のURLを持っています:

http://test.me/s/hq6aN

私は基本的にその s を d に置き換えたかったのですが、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 に答える