我需要帮助将出现的字符串替换为另一个字符串。需要检测的occurrency其实是某种函数:
%nx+a
或 %nx-a
其中 x
和 a
是一些数字。
例如 %n10+2
或 %n54-11
。
我什至不能使用类似的东西:
NSRange startRange = [snippetString rangeOfString:@"%n"];
因为如果我在同一个字符串中有两个模式,我正在检查我只会得到第一个的起始范围......
谢谢。
最佳答案
对于这样的事情,您可以使用 NSRegularExpression
并使用方法 enumerateMatches:
。
或者您可以创建自己的循环。
一旦你有了正确的模式,第一个是最简单的。
有点像...
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"%n" options:0 error:nil];
NSString *string = @"%n10+2*%n2";
[regex enumerateMatchesInString:string
options:0
range:NSMakeRange(0, string.length)
usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
// here you will get each instance of a match to the pattern
}];
您必须查看 NSRegularExpression
的文档以了解如何使用它来完成您需要做的工作。
关于ios - NSString 子串检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21704414/