从给定的字符串模式中提取数据

时间:2014-02-01 18:31:06

标签: objective-c

给出以下模式:“## - ## - ##”,其中“##”表示1或2位整数,分隔数字的最佳方法是什么?

一些背景:我有一个NSString对象数组。从这个数组我创建一个新的可变数组,将一些字符串转换为NSNumbers(这是有效的)。一些字符串具有上面显示的模式(模式代表胜利,损失和联系)。我想添加到可变数组,字符串(按原样)以及作为NSIntegers的胜利,损失和联系。

我不知道使用NSScanner或NSRegularExpression是否更好。我之前没有使用过这些,我不知道如何设置它们并返回我需要的信息。

提前致谢,
布拉德

2 个答案:

答案 0 :(得分:1)

您可以使用[NSString componentsSeparatedByString:@"-"]。对于你的情况很简单。其余的我认为这是矫枉过正的。

NSString *completeString= @"20-33-89";
NSArray *numbers = [completeString componentsSeparatedByString:@"-"];

答案 1 :(得分:1)

如果您想使用NSRegularExpression,请尝试这样: -

 NSRegularExpression *regex = 
 [NSRegularExpression 
 regularExpressionWithPattern:@"-"
options:NSRegularExpressionCaseInsensitive
error:nil];

NSArray *matches = [regex 
 matchesInString:string  options:0
 range:NSMakeRange(0, [string length])];