如何使用正则表达式解析角度值

Eri*_*edo 3 python regex angle

我使用正则表达式的经验很少,我需要使用正则表达式解析表示为方位的角度值,例如:

"N45°20'15.3" E"

代表:45度,20分钟,15.3秒,位于NE象限.

限制是:

  • 第一个字符可以是"N"或"S"
  • 最后一个字符可以是"E"或"W"
  • 0 <=度<= 59
  • 0 <=分钟<= 59
  • 0 <=秒<60,这可以省略.

Python最好或任何其他语言.

谢谢

Gum*_*mbo 8

试试这个正则表达式:

^([NS])([0-5]?\d)°([0-5]?\d)'(?:([0-5]?\d)(?:\.\d)?")?([EW])$
Run Code Online (Sandbox Code Playgroud)

它匹配任何字符串......

  • ^([NS])   从N或开始S
  • ([0-5]?\d)°   接着度值,无论是单一的数字之间09(\d)两个数字与第一bewteen或05([0-5])和第二09之间,因此059,随后°
  • ([0-5]?\d)'   然后是分钟值(再次在0和之间59)和'
  • (?:([0-5]?\d)(?:\.\d)?")?   可选地后跟一个秒值和"符号,秒值0和之间59的可选附加小数点,和
  • ([EW])$   两个E或两个结尾W.

如果您不希望允许十位以下的值具有前面的零,请更改[0-5][1-5].