ios - NSString 子串检测

标签 ios objective-c string nsstring substring

我需要帮助将出现的字符串替换为另一个字符串。需要检测的occurrency其实是某种函数:

%nx+a%nx-a

其中 xa 是一些数字。

例如 %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 的文档以了解如何使用它来完成您需要做的工作。

文档... https://developer.apple.com/library/mac/documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html

关于ios - NSString 子串检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21704414/

相关文章:

python - 将 python 源代码解析为 html - 引号

arrays - C 中 char ** 和 char (*)[100] 有什么区别?

iphone - 为什么在NSArray上使用SQLite

ios - Swift:一个函数修改变量的值,我想在其他地方使用这个变量来更新UI

objective-c - 如何在运行时以编程方式创建多分辨率(视网膜就绪)NSImage?

objective-c - Encoding ™ £ 用于 JSON - 使用 objective-c

ios - objective-c : dequeueReusableCellWithIdentifier:forIndexPath: returns exception

ios Swift - 初始化许多 AVAudioPlayer 与许多字符串\路径

ios - 如何禁用 swiftlint 配置文件中的字符限制

javascript - 将字符串分成两部分,长度几乎相同