国家气象局 (NWS) 在其文本公告和联合格式提要中嵌入机器可读组件,称为有效时间事件代码 (VTEC)。
有关 VTEC 的更多信息http://www.nws.noaa.gov/os/vtec/
文本公告示例:http ://www.nws.noaa.gov/view/national.php?prodtype=allwarnings
我正在开发一个解析器来解释嵌入在 NWS 公告中的一系列 VTEC,并有一个正则表达式来捕获逻辑,我很乐意分享,见下文,但不是 100% 确定我是否做对了。
具体来说,
1. 是否有任何关于可以在任何一条 NWS 消息(或其更新)中嵌入多少个 VTEC 的规范?通常只看到一个,但如果有多个,层次结构是什么,如果有的话 - 最后一个会取消前一个吗?或者,所有 VTEC 的重量是否相同?
2. 如果发布水文或 H-VTEC,是否总是紧跟在 P-VTEC 之后?
3. 在 XML 文档的意义上,H-VTEC 元素和 P-VTEC 元素之间是否存在“父子”关系?
4. VTEC 可以用作消息或其更新的唯一标识符吗?如果不是,那么数据库意义上的“主键”是什么?是否可以使用 VTEC 的散列以及公告更新日期?或者是否推荐任何其他字段组合?
以下正则表达式能够获取 VTEC,假设可以释放任意数量的 P-VTEC,并且如果存在 H-VTEC,它将始终位于“父”P-VTEC 之前。
[/][OTEX][.](NEW|CON|EXT|EXA|EXB|UPG|CAN|EXP|COR|ROU)[.][\w]{4}[.][A-Z][A-Z][.][WAYSFON][.][0-9]{4}[.][0-9]{6}[T][0-9]{4}[Z][-][0-9]{6}[T][0-9]{4}[Z][/]([^/]*[/][\w]{5}[.][[N0-3U]][.][A-Z][A-Z][.][0-9]{6}[T][0-9]{4}[Z][.][0-9]{6}[T][0-9]{4}[Z][.][0-9]{6}[T][0-9]{4}[Z][.](NO|NR|UU|OO)[/])?