gpt4 book ai didi

DDMMSSX 形式的纬度和经度的正则表达式

转载 作者:行者123 更新时间:2023-12-02 01:08:23 24 4
gpt4 key购买 nike

用DDMMSS表示纬度和经度的正则表达式是什么,其中D代表度数,M代表分钟,S代表秒,X是表示北(N)、南、东或西的字母?

例如,对于北纬 60 度 20 分 15 秒,它将是 602015N,对于西经 40 度 50 分 0 秒,它将是 0405000W。 (请注意,纬度始终为 6 位,经度始终为 7 位)。

另外,请记住,分和秒必须介于 00 到 59 之间,度必须介于 0 到 90(对于纬度)和 0 到 180(对于经度)之间。

最佳答案

试试这两个正则表达式:

纬度

(?:[0-8]\d|90)(?:[0-5]\d)(?:[0-5]\d)[NS]

Regular expression visualization

Debuggex Demo


经度

(?:0\d{2}|1[0-7]\d|180)(?:[0-5]\d)(?:[0-5]\d)[EW]

Regular expression visualization

Debuggex Demo

备注:
不要忘记在您的 Java 代码中转义 \,如果字母 (NSEW) 可以是小写,您可以使用忽略大小写标志。

 String latitude=...
final String LATITUDE_REGEX = "(?:[0-8]\\d|90)(?:[0-5]\\d)(?:[0-5]\\d)[NS]";
// the same regex with ignore case flag activated
// final String LATITUDE_REGEX = "(?i)(?:[0-8]\\d|90)(?:[0-5]\\d)(?:[0-5]\\d)[NS]";

if (latitude.matches(LATITUDE_REGEX)) {
// We have a latitude ...
} else {
// This is not a latitude...
}

关于DDMMSSX 形式的纬度和经度的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19839728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com