我正在尝试从 METAR 天气报告(从http://weather.noaa.gov/pub/data/observations/metar/cycles/下载)中捕获风描述,并从该块中获取风的成分,如果它火柴。正则表达式是@"^([0-9]{3}|VRB)([0-9]{2,3})G?([0-9]{2,3})?(KT|MPS|KMH)"
。
我正在使用 PDRegex 库将捕获的匹配项枚举到一个数组中。(PDRegex 库可以在https://github.com/carlbrown/RegexOnN SString/blob/master/RegexOnNSString/NSString%2BPDRegex.m 上找到)
这些是我的代码中的适用行:
word = @"16008KT"; //test block
NSArray *matches = [word stringsByExtractingGroupsUsingRegexPattern:@"^([0-9]{3}|VRB)([0-9]{2,3})G?([0-9]{2,3})?(KT|MPS|KMH)"];
当stringsByExtractingGroupsUsingRegexPattern
(一个 PDRegex 方法)被调用并匹配时,它在第 62 行崩溃NSString+PDRegex
。这是应用程序崩溃的 PDRegex 行:
NSString *matchedString=[self substringWithRange:[result rangeAtIndex:i]];
这是崩溃报告:
由于未捕获的异常“NSRangeException”而终止应用程序,原因:“-[__NSCFString substringWithRange:]: Range or index out of bounds”