2010-06-17 4 views
1

Dans mon application console C# j'essaie d'utiliser Regex pour rechercher une chaîne pour déterminer s'il y a une correspondance ou non. Ci-dessous est mon code, mais il ne fonctionne pas tout à fait correctement, donc je vais vous expliquer plus loin. sSearchString est défini sur "_One-Call_Pipeline_Locations" et pDS.Name est un nom de fichier qu'il recherche. En utilisant le code ci-dessous, il est défini sur true pour Nevada_One-Call_Pipeline_Locations et Nevada_One-Call_Pipeline_LocationsMAXIMUM. Il devrait y avoir une correspondance pour Nevada_One-Call_Pipeline_Locations mais pas pour Nevada_One-Call_Pipeline_LocationsMAXIMUM. Comment puis-je changer mon code pour le faire correctement?Regex Question

Merci à l'avance

if (Regex.IsMatch(pDS.Name, sSearchString)) 

Répondre

2

changer la sSearchString à ".*_One-Call_Pipeline_Locations$"

1

Vous devez spécifier qu'un nom correspondant doit se terminer par le texte que vous avez entré en utilisant le jeton dollar.

sSearchString = "_One-Call_Pipeline_Locations$"; 
0

Depuis que vous avez fourni aucun détail quant à quoi d'autre doit correspondre, on ne peut supposer que si la chaîne se termine par "Nevada_One-Call_Pipeline_Locations", il correspond? Est-ce correct?

Si oui, vous n'avez pas besoin Regex:

if (pDS.Name.EndsWith("Nevada_One-Call_Pipeline_Locations")) 
{ //... 
+0

Je ne à condition que ces deux exemples. il y a beaucoup d'autres chaînes qui seront recherchées dans sSearchString – Josh