代码之家  ›  专栏  ›  技术社区  ›  Omnia9

正则表达式在一种情况下不起作用

  •  0
  • Omnia9  · 技术社区  · 16 年前

    Obabikon, ON 49°10′N 94°10’W 2278 km N69°W
    

    我有一个正则表达式搜索,如下所示:

    String LongPattern = @"(~)?([0-9\?])+°([0-9\?])*′[EWO]";
    return FindPattern(source, LongPattern);
    

    它应该找到< 94°10’W &燃气轮机;但不是。这个正则表达式在处理我的其余数据时没有任何问题。

    有什么线索吗?

    3 回复  |  直到 16 年前
        1
  •  3
  •   Jon Skeet    16 年前

    你有两种不同的撇号。比较这些:

    49°10′N
    94°10’W
    

    如果您想应付其中一种情况,请将regex更改为:

    "(~)?([0-9\?])+°([0-9\?])*[′’][EWO]"
    

    或者,修复输入数据:)

        2
  •  2
  •   Matti Virkkunen    16 年前

        3
  •  0
  •   AakashM    16 年前

    这里有不止一个表示分钟的符号。即使在示例字符串中,纬度和经度的分钟部分也是不同的符号。看起来正则表达式中的符号与纬度中的符号相同,这就是它与经度不匹配的原因。

    在你的经度里

    在你的正则表达式中