【问题标题】:Regex to match Longitude and Latitude正则表达式匹配经度和纬度
【发布时间】:2012-02-11 20:20:17
【问题描述】:

我正在尝试验证用户可以以一种或另一种形状方式更改的输入。这是特定于经度和纬度的。所以我试图想出一个可以验证条目的正则表达式。所以如果不匹配我可以抛出异常

我正在通过 php preg_match 玩的正则表达式是:

preg_match('/^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$/')

这似乎对我不起作用。我正在尝试以如下格式捕获 gps long/lat -101.3335 和 71.5555(当然我不知道这些特定数字的有效性,但这是一般格式)

【问题讨论】:

  • “似乎不起作用”是什么意思?该正则表达式看起来应该适用于-123.456,123.456 之类的字符串。您发现哪些输入字符串不匹配?
  • 你知道吗,我想我刚刚意识到我的问题。事实上,我是单独传递它们而不是组合传递,我什至没有考虑过。

标签: php regex preg-match


【解决方案1】:
preg_match('/^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$/')

实际上是一个工作概念。当我发布并遇到问题时,我最初没有意识到我无法将其中一个或另一个放在 long/lat 中。我必须将它们都放在由 a 分隔的 , 以使其达到证实。有人在我的 cmets 中指出了初始帖子,但我很感谢您的帮助。

【讨论】:

    【解决方案2】:

    试试这个:

    preg_match('/^(\\-?\\d+[.\\d]+),?\\s*(\\-?\\d+[.\\d]+)?$/')
    

    【讨论】:

    • 这不起作用 - [.\d+] 匹配 . 或数字或“+”的一个实例
    猜你喜欢
    • 2011-03-31
    • 2011-07-24
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多