2010-05-13 3 views
0

J'ai une chaîne avec les informations suivantes.Regex ne fonctionne pas dans un cas

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

J'ai une recherche regex comme suit:

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

Il faut trouver le < 94°10’W> Mais est-ce pas. Cette regex fonctionne pour le reste de mes données sans aucun problème.

Des indices?

Répondre

3

Vous avez deux types différents d'apostrophie. Comparez ces:

49°10′N 
94°10’W 

Si vous voulez être en mesure de faire face à une ou l'autre, changer votre regex:

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

Vous pouvez également fixer vos données d'entrée :)

+0

Il travaille actuellement. – Arnej65

2

Les citations sont différentes. Votre chaîne de sujet a ', pendant que votre expression rationnelle a'. C'est une minuscule différence, mais ce sont des caractères différents ...

+0

Merci. Je savais que c'était quelque chose de petit. – Arnej65

0

Il y a plus d'un symbole ici pour les minutes. Même dans votre chaîne d'échantillons, les parties minutes de la latitude et de la longitude sont des symboles différents. Il semble que le symbole de votre regex soit le même que celui de la latitude, c'est pourquoi il ne correspond pas à la longitude.

Dans votre longitude vous avez

»

Dans votre regex vous avez

'

Questions connexes