我使用 NSScanner 从下面的文本中检索数字。但有时结果并不像预期的那样。听说 iOS 4 中提供的 NSRegularExpression 类更适合进行这种类型的提取。由于我是 NSRegularExpression 的初学者,我发现 Apple 提供的文档很难理解。任何帮助将不胜感激。谢谢。
输入:
1D03 04 10 17 47 D24--
输出:
03 04 10 17 47 24
前 5 组数字应小于 59,最后一组数字应小于 39。
最佳答案
试试这个..
NSString *originalString = @"1D03 04 10 17 47 D24---";
NSLog(@"%@", originalString);
NSMutableString *strippedString = [NSMutableString
stringWithCapacity:originalString.length];
NSScanner *scanner = [NSScanner scannerWithString:originalString];
NSCharacterSet *numbers = [NSCharacterSet
characterSetWithCharactersInString:@"0123456789 "];
while ([scanner isAtEnd] == NO) {
NSString *buffer;
if ([scanner scanCharactersFromSet:numbers intoString:&buffer]) {
[strippedString appendString:buffer];
} else {
[scanner setScanLocation:([scanner scanLocation] + 1)];
}
}
NSLog(@"%@", strippedString);
关于iphone - NSRegularExpression 用于从字符串中检索数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7735400/