我的字符串看起来像这样:
R392P328N87R3928N32P328N123
行结束由N后跟数字定义。
我需要将每一行拆分成一个数组对象。我正在考虑使用简单的componentsSeparatedByString:但是在N之后有一个数字,我希望它在创建的对象中包含N.
另请注意,在N之前出现的不是常数。
换句话说,从上面的那一行开始,我需要它来创建3个数组对象:
R392P328N87
R3928N32
P328N123
这样做的最佳方法是什么?我应该尝试一些寻找'N'的东西,当它到达另一个非十六进制字母时停止(我可能在N之后有十六进制)?
谢谢!
利亚
答案 0 :(得分:1)
听起来像是正则表达式的工作。
NSString *string = @"R392P328N87R3928N32P328N123";
NSString *pattern = @".*?N\\d+";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:NULL];
NSMutableArray *lines = [NSMutableArray array];
[regex enumerateMatchesInString:string options:0 range:NSMakeRange(0, string.length) usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
[lines addObject:[string substringWithRange:result.range]];
}];
NSLog(@"%@", lines);
// => ["R392P328N87", "R3928N32", "P328N123"]