【发布时间】:2023-03-13 05:18:01
【问题描述】:
我正在尝试修改NSString,同时从NSRegularExpression 迭代NSTextCheckingResults。
我知道它不会像我实现它的方式那样工作,因为每次替换都会改变字符串的长度,因此我的循环中 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:@"#"];
}
我现在有点卡住了。我想到的所有方法似乎都不起作用。
【问题讨论】:
标签: loops replace nsstring nsregularexpression nsrange