如何修改十进制经纬度正则表达式以兼容带方位标识的格式?
修改十进制经纬度正则以兼容带方位标识的格式
原正则用于匹配十进制经纬度:
^[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),?[\s,]{1}[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)$
可匹配的格式:
53.58465, 113.50034 53.58465 113.50034
需要兼容带度数符号和方位(N/S/E/W)的可选格式:
53.58465° N, 113.50034° W 53.58465° N 113.50034° W // 无逗号 53.58465°N, 113.50034°W 53.58465°N 113.50034°W // 无逗号
修改后的正则表达式
^[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?)(°\s?[NS])?,?\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)(°\s?[EW])?$
关键修改说明
- 纬度段末尾新增
(°\s?[NS])?:匹配可选的度数符号°、可选空格,以及方位标识N/S,?标记整段为可选,兼容有无方位的情况 - 分隔符调整:将原有的
[\s,]{1}替换为\s*,允许逗号后有任意数量空格,同时保留,?让逗号本身可选,适配带逗号/无逗号的分隔场景 - 经度段末尾新增
(°\s?[EW])?:逻辑同纬度段,匹配可选的度数符号、空格和方位标识E/W
内容的提问来源于stack exchange,提问作者TangoMike
相关产品推荐
相关产品推荐

