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

求助:Google Sheet中使用Regexextract提取GeoJSON坐标的正则表达式

从Google Sheet的GeoJSON单元格提取坐标的Regexextract方案

嘿,我明白你在Google Sheet里提取GeoJSON坐标时遇到的正则难题了——GeoJSON的格式虽然规范,但用REGEXEXTRACT抓坐标确实得精准匹配结构。我来给你几个实用的方案,覆盖常见的GeoJSON类型:

1. 提取Point类型的坐标(最常见)

如果你的GeoJSON是Point类型,结构类似:

{"type": "Point", "coordinates": [120.12345, 30.67890]}

用下面的公式可以直接提取逗号分隔的经纬度字符串:
=REGEXEXTRACT(A1, "\"coordinates\":\s*\[([^\]]+)\]")

拆分经度和纬度

如果要分别拿到经度和纬度,可以配合SPLIT和INDEX:

  • 提取经度:=INDEX(SPLIT(REGEXEXTRACT(A1, "\"coordinates\":\s*\[([^\]]+)\]"), ","), 1)
  • 提取纬度:=INDEX(SPLIT(REGEXEXTRACT(A1, "\"coordinates\":\s*\[([^\]]+)\]"), ","), 2)

2. 提取Polygon/MultiPolygon类型的坐标

如果是多边形类的GeoJSON,结构类似:

{"type": "Polygon", "coordinates": [[[120.1,30.2],[120.3,30.4],[120.5,30.6],[120.1,30.2]]]}
  • 提取完整的外层坐标数组:
    =REGEXEXTRACT(A1, "\"coordinates\":\s*(\[\[.*?\]\])")
  • 提取第一个顶点的坐标:
    =REGEXEXTRACT(A1, "\"coordinates\":\s*\[\[\[([^\]]+)\]\]")

关键细节说明

  • \s*:匹配任意数量的空格(包括换行),兼容GeoJSON里可能存在的格式空格
  • [^\]]+:匹配直到]的所有字符,完美适配带负号、小数点的坐标值
  • .*?:非贪婪匹配,避免在嵌套数组结构中匹配到多余的内容

如果你的GeoJSON有特殊嵌套结构或者额外属性,可以把单元格里的具体内容贴出来,我再帮你调整正则表达式~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:12:02