正则表达式不适用于一个案例

时间:2010-05-13 14:22:19

标签: c# regex

我有一个包含以下信息的字符串。

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 个答案:

答案 0 :(得分:3)

你有两种不同的悖论。比较这些:

49°10′N
94°10’W

如果您希望能够应对任何一种情况,请将您的正则表达式更改为:

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

或者,修复输入数据:)

答案 1 :(得分:2)

报价不同。你的主题字符串有',而你的正则表达式'。这是一个微小的差异,但他们是不同的角色......

答案 2 :(得分:0)

这里有多个符号可供分钟使用。即使在您的样本字符串中,纬度和经度的分钟部分也是不同的符号。看起来你的正则表达式中的符号与纬度中的符号相同,这就是它与经度不匹配的原因。

在你的经度中你有

在你的正则表达式中你有