正则表达式坐标WGS84?

时间:2018-06-15 14:39:38

标签: javascript regex

我正在尝试这种常规表达方式,但我无法正确验证结束空格和字母:

/^\d{0,2}(\-\d{0,2})?(\-\d{0,2})?(\ ?\d[W,E]?)?$/

正确值的示例:

  1. 33-39-10 N //确定
  2. 85-50 W //好的
  3. -85-50 E //错误
  4. 怎么了?

2 个答案:

答案 0 :(得分:1)

-quantifier也匹配数字零次,以便与第3个示例中的前导[W,E]匹配。

character class [ENW]中,您可以省略逗号并列出您允许匹配的字符$

如果只有第三组是可选的,您可以尝试在行=SUMPRODUCT(COUNTIFS(A:A,E2,B:B,$B$2:INDEX(B:B,MATCH(1E+99,B:B)))*($A$2:INDEX(A:A,MATCH(1E+99,B:B))=D2))/COUNTIF(A:A,D2) 之前包含空格

^\d{2}(-\d{2})(-\d{2})? [ENW] $

答案 1 :(得分:0)

我使用过这个正则表达式:^(?!\-)\d{0,2}?(\-\d{0,2}).+\s(N|E|W|S)$

使用negative lookahead,我们排除了任何以破折号(-)开头的内容。

  • (?!\-) = Starting at the current position in the expression, ensures that the given pattern will not match
  • \s(N|E|W|S)使用空格(\s)匹配任何内容,使用OR运算符|匹配其中一个字母。
  • 您也可以使用\s+(N|E|W|S)
  • + = Matches between one and unlimited times, as many times as possible, giving back as needed