2009-11-01 7 views
38

문자열에서 숫자와 기호를 모두 제거하려면 Regex.Replace을 사용해야합니다.Regex.Replace를 사용하여 문자열에서 숫자를 제거하는 방법?

입력 예 : 123- abcd33 출력 예 : 미리 abcd

감사합니다.

var output = Regex.Replace(input, @"[\d-]", string.Empty); 

\d 식별자는 단순히 어떤 자리의 문자와 일치 :

+2

"-"도 제거 하시겠습니까? 그 숫자가 아니에요 ... – jle

답변

80

은 다음보십시오.

+0

도움을 주셔서 감사합니다 – Gold

3
var result = Regex.Replace("123- abcd33", @"[0-9\-]", string.Empty); 
10

대신 정규 표현식의 솔루션과 같은 LINQ와 함께 할 수 있습니다

string input = "123- abcd33"; 
string chars = new String(input.Where(c => c != '-' && (c < '0' || c > '9')).ToArray()); 

빠른 성능 테스트는이 약 5 배 빠른 정규 표현식을 사용하는 것보다 보여줍니다.

+0

나는 다른 방법이 될 것이라고 생각했습니다 .... 흥미 롭습니다. – SirDemon

+0

@SirDemon : 예, LINQ는 일반적으로 가장 빠르지 만 정규식은 초기 오버 헤드가 더 큽니다. 짧은 문자열에 대한 작업의 경우 RegEx 개체 설정시 실제 작업보다 시간이 오래 걸립니다. – Guffa

+0

@ Guffa이 비늘의 크기를 아십니까? RegEx를 위해 50,000 건의 레코드를 준비해야합니까? –

관련 문제