哪个是以DDMMSS表示的纬度和经度的正则表达式,其中D表示度,M表示分钟,S表示秒,X是表示北(N)、南、东或西的字母?
例如,对于北纬60度,20分钟,北纬15秒,北纬60201度,西经40度,50分钟,西经0秒,是0405000 W。(请注意,纬度总是6位数,经度总是7位数)。
同时,要记住,分钟和秒必须在00到59之间,度必须在0到90之间(纬度)和0到180之间(经度)。
发布于 2013-11-07 15:40:33
尝试以下两个正则表达式:
纬度
(?:[0-8]\d|90)(?:[0-5]\d)(?:[0-5]\d)[NS]
经度
(?:0\d{2}|1[0-7]\d|180)(?:[0-5]\d)(?:[0-5]\d)[EW]
Nota:
不要忘记在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...
}
发布于 2013-11-07 15:32:22
编辑:
下面的Stackoverflow应该可以帮助您..。
^\s*([+-]?\d{1,3}\*?\s+\d{1,2}'?\s+\d{1,2}"?[NSEW]?|\d{1,3}(:\d{2}){2}\.\d[NSEW]\s*){1,2}$
https://stackoverflow.com/questions/19839728
复制相似问题