2012-03-18 4 views
0

Windows에서 경로 또는 파일 이름을 나타내는 문자열에서 잘못된 문자를 제거하려고합니다. \ t를 하시다이 같은 기록 "이"를 제외하고,Cant .net에서 regex를 사용하여 문자열에서 백 슬래시를 제거하십시오.

 string pattern = "([\", \\, <,>, :, /, ?,|,*])"; 
     string[] names = { "o\"ne", "t\\wo", "thr<ee", "fo>ur", "fi:ve", "si/x", "sev?en", "ei|ght", "ni*ne" }; 
     foreach (String name in names) 
     { 
      Console.WriteLine(Regex.Replace(name, pattern, String.Empty)); 
     } 

나는 모든 인쇄 괜찮 얻을 : 여기

내가 테스트에 사용 된 코드입니다. 괄호 밖의 별표를 넣으려고했는데 동일한 결과가 나타납니다.

어떻게해야합니까?

감사합니다.

+1

'Path.GetInvalidPathChars()'체크 아웃을 원할 수도 있습니다. – GolfWolf

+0

정규 표현식으로 어떻게 사용합니까? – SnapDragon

+0

이것은 정규 표현식에 사용하기위한 것이 아닙니다. 그것은 불법 문자를 수동으로 대체하여 사용할 수 있습니다. – GolfWolf

답변

0

정규식 패턴에서 백 슬래시를 두 번 이스케이프 처리해야합니다. 백 슬래시 문자는 정규 표현식의 문자 그룹을 나타내는 데 사용됩니다 (예 : 숫자를 나타내는 \d). 백 슬래시와 일치 시키려면 표기 \\을 사용합니다. 그런 다음 .NET 문자열에서 이스케이프 처리해야합니다.

즉, \\\\\\으로 변경하십시오.

+0

작동하지만 이제는 공백을 대체합니다. – SnapDragon

관련 문제