【发布时间】:2013-04-10 03:30:19
【问题描述】:
这些是我的示例 NSStrings(解析为数组),经过简化。
单个字符串对象被解析为“STRING1, STRING2 then DATE TIME then - A:VALUE”,例如:
The name of first value, first 17/04/2013 11:30:00 - A:30.0 // sometimes there is a comma after first string
The name of second value 17/04/2013 11:00:00 - A:20.0 // sometimes there is NOT a comma after first string
Name of third value 17/04/2013 10:30:00 - A:40.0
Fourth 17/04/2013 09:40:00 - A:50.0
Fifth value 17/04/2013 05:00:00 - A:10.0
好吧,我需要提取STRING或STRING的单独值,STRING:
The name of first value, first
The name of second value
Name of third value
Fourth
Fifth value
然后是日期和时间
17/04/2013 11:30:00
17/04/2013 11:00:00
17/04/2013 10:30:00
17/04/2013 09:40:00
17/04/2013 05:00:00
最后是单个 VALUES:
30.0
20.0
40.0
50.0
10.0
编辑:我正在尝试使用 Martin R 的代码来解析 *allValues:
The *allValues array is something like:
(
"The name of first value, first 17/04/2013 11:30:00 - A:30.0",
"The name of second value 17/04/2013 11:00:00 - A:20.0",
"Name of third value 17/04/2013 10:30:00 - A:40.0",
"Fourth 17/04/2013 09:40:00 - A:50.0",
"Fifth value 17/04/2013 05:00:00 - A:10.0"
)
这里是提取单个值的代码:
NSMutableArray *allValues = [parsedFeed valueForKey:@"values"];
for (int i=1; i < [allValues count]; i++) {
NSString *string = [allValues objectAtIndex:i];
NSString *pattern = @"(.*) (\\d{2}/\\d{2}/\\d{4} \\d{2}:\\d{2}:\\d{2}) - A:(.*)";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:NULL];
NSTextCheckingResult *match = [regex firstMatchInString:string options:0 range:NSMakeRange(0, [string length])];
if (match != nil) {
NSString *s1 = [string substringWithRange:[match rangeAtIndex:1]];
NSString *s2 = [string substringWithRange:[match rangeAtIndex:2]];
NSString *s3 = [string substringWithRange:[match rangeAtIndex:3]];
NSLog(@"First part: %@", s1);
NSLog(@"Second part: %@", s2);
NSLog(@"Third part: %@", s3);
}
}
但在这种情况下,我无法获得任何 NSLog 结果(match == nil)。发生了什么?谢谢!
【问题讨论】:
-
What have you tried? 我们不是来为您解决问题,而是帮助您解决在尝试解决问题时遇到的特定问题。您可能还想看看FAQ
标签: objective-c regex nsstring nsarray nsregularexpression