からNSString
繰り返しながらを変更しようとしています。NSTextCheckingResults
NSRegularExpression
すべての置換が文字列の長さを変更し、ループ内の 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:@"#"];
}
私は今少し立ち往生しています。私が考えたアプローチはどれも機能しているようには見えませんでした。