2010-06-17 5 views
1

내 C# 콘솔 응용 프로그램에서 Regex를 사용하여 일치 여부를 확인하기 위해 문자열을 검색하려고합니다. 아래 코드는 제 코드이지만 제대로 작동하지 않으므로 자세히 설명하겠습니다. sSearchString은 "_One-Call_Pipeline_Locations"로 설정되고 pDS.Name은 검색 대상 파일 이름입니다. 아래 코드를 사용하면 Nevada_One-Call_Pipeline_Locations 및 Nevada_One-Call_Pipeline_LocationsMAXIMUM에 대해 true로 설정됩니다. Nevada_One-Call_Pipeline_Locations에는 일치해야하지만 Nevada_One-Call_Pipeline_LocationsMAXIMUM에는 일치하지 않아야합니다. 이 작업을 올바르게 수행하기 위해 코드를 어떻게 바꿀 수 있습니까? ".*_One-Call_Pipeline_Locations$"Regex Question

답변

2

변화를 사전에

덕분에 당신은 일치하는 이름을 사용하면 달러 토큰을 사용하여 입력 한 텍스트로 종료해야 함을 지정해야합니다. 당신이 다른 무엇과 일치해야합니다에 관해서는 아무런 정보를 제공하지 않기 때문에

sSearchString = "_One-Call_Pipeline_Locations$"; 
1

에 sSearchString

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

, 우리는 문자열이 "Nevada_One-Call_Pipeline_Locations"로 끝나는 경우, 다음과 일치한다고 가정 할 수 있습니까? 이 올바른지? 그렇다면

, 당신은 정규식이 필요하지 않습니다 :

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

나는 예로서 만 두를 제공했다. sSearchString에 대해 검색 될 다른 많은 문자열이 있습니다. – Josh