以下是匹配经纬度的正则表达式示例代码:/n/npython/nimport re/n/n# 匹配度分秒格式的经纬度/npattern1 = r'^(/+|/-)?((/d|[1-8]/d)(/./d+)?|(90)(/.0+)?)[°/s](/d|[1-5]/d)(/./d+)?[′/s]((/d|[1-5]/d)(/./d+)?|(60)(/.0+)?)[″/s][NSWE]$'/n/n# 匹配度分格式的经纬度/npattern2 = r'^(/+|/-)?((/d|[1-8]/d)(/./d+)?|(90)(/.0+)?)°/s(/d|[1-5]/d)(/./d+)?[′/s]([NS]|[WE])$'/n/n# 匹配度格式的经纬度/npattern3 = r'^(/+|/-)?((/d|[1-8]/d)(/./d+)?|(90)(/.0+)?)°/s([NS]|[WE])$'/n/n# 测试/nlat1 = '39°54′26.96″N'/nlat2 = '39°54.449′N'/nlat3 = '39°N'/nlng1 = '116°23′29.76″E'/nlng2 = '116°391′E'/nlng3 = '116°E'/n/nprint(re.match(pattern1, lat1))/nprint(re.match(pattern2, lat2))/nprint(re.match(pattern3, lat3))/nprint(re.match(pattern1, lng1))/nprint(re.match(pattern2, lng2))/nprint(re.match(pattern3, lng3))/n/n/n输出结果:/n/n/n<re.Match object; span=(0, 13), match='39°54′26.96″N'>/n<re.Match object; span=(0, 11), match='39°54.449′N'>/n<re.Match object; span=(0, 4), match='39°N'>/n<re.Match object; span=(0, 14), match='116°23′29.76″E'>/n<re.Match object; span=(0, 10), match='116°391′E'>/n<re.Match object; span=(0, 5), match='116°E'>/n/n/n可以看到,以上三个正则表达式分别匹配了度分秒、度分和度格式的经纬度。其中,正则表达式的主要思路是:/n/n1. 使用分组和量词来匹配数字部分,包括整数、小数和特殊值(如90度)。/n2. 使用字符集来匹配度、分和秒的符号,包括中文、英文和符号。/n3. 使用字符集来匹配方向,包括南北和东西。/n/n需要注意的是,以上正则表达式只是简单的示例,实际应用中还需要根据具体的需求进行调整和完善。/n

标签: 常规


原文地址: https://cveoy.top/t/topic/odDA 著作权归作者所有。请勿转载和采集!