You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Overpass API中反转正则匹配,查找不符合规范的ICAO代码

在Overpass-Turbo中反向匹配ICAO代码正则

在Overpass-Turbo的查询语法里,不需要修改原正则表达式,直接使用反向匹配操作符就能筛选出不符合^[A-Z]{4}$规则的ICAO代码。

核心用法

Overpass提供了!~操作符,用于实现正则的反向匹配——只要标签值不满足后续的正则表达式,就会被选中。你的原正则^[A-Z]{4}$可以直接复用,不需要调整。

示例查询语句

假设你要查找所有标注了ICAO代码但不符合规范的机场元素,完整查询如下:

[out:json][timeout:25];
// 匹配所有带icao标签但值不符合规范的机场节点、路径、关系
node["aeroway"="aerodrome"]["icao"!~"^[A-Z]{4}$"];
way["aeroway"="aerodrome"]["icao"!~"^[A-Z]{4}$"];
relation["aeroway"="aerodrome"]["icao"!~"^[A-Z]{4}$"];
out body;
>;
out skel qt;

关键说明

  • 这个查询会筛选出所有ICAO代码长度不是4位、包含小写字母、或存在非字母字符的元素
  • 如果需要匹配所有带有icao标签的元素(不限类型),可以简化为["icao"!~"^[A-Z]{4}$"]
  • !~是Overpass原生支持的反向正则匹配语法,无需额外修改正则本身

内容的提问来源于stack exchange,提问作者user2033412

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 09:02:07