1

からNSString繰り返しながらを変更しようとしています。NSTextCheckingResultsNSRegularExpression

すべての置換が文字列の長さを変更し、ループ内の NSRages の有効性を変更するため、実装した方法では機能しないことを私は知っています。

forループで複数の一致を置き換えるにはどうすればよいですか? これが私のコードです:

NSMutableString *string = [@"[H]…[mm]…[s]" mutableCopy];
NSReguralExpression *exp = [NSRegularExpression regularExpressionWithPattern:@"(\\[[Hms]{1,2}\\])" options:0 error:nil];

for (NSTextCheckingResult *result in [exp matchesInString:string options:NSMatchingReportCompletion range:NSMakeRange(0, [string length])]) {
    [string replaceCharactersInRange:[result rangeAtIndex:0] withString:@"#"];
}

私は今少し立ち往生しています。私が考えたアプローチはどれも機能しているようには見えませんでした。

4

1 に答える 1