2013-02-19 3 views
3

아래의 정규식을 사용하여 문자열에서 비 ASCII 문자를 모두 제거합니다.비 ASCII 문자를 제거하고 통화 기호 허용

String pattern = @"[^\u0000-\u007F]"; 
Regex rx = new Regex(pattern, RegexOptions.Compiled); 
rx.Replace(data," "); 

그러나 나는 curreny (파운드 기호)와 상표 기호를 사용하고 싶습니다.

아래 정규화 된 숫자는 &입니다. 누구든지 정규식이 유효한지 확인할 수 있습니까?

String pattern = @"[^\u0000-\u007F \p{Sc}]"; 

는 기본적으로, 나도 모든 통화 기호를 허용 할.

+0

매번 제가 대답 할 것입니다. qu estion : P –

+0

죄송합니다. 편집 완료 :) – NoobDeveloper

+1

예, 정규식이 맞습니다. 지정한 범위 ('0000-007F') 또는 통화 기호 문자를 제외한 모든 문자와 일치합니다. '\ p {Sc} '의 의미를 확인하십시오 : http://www.regular-expressions.info/unicode.html#prop –

답변

2

네 정규식이 맞습니다.

코드로 수행하는 작업은 정규 표현식과 일치하는 문자를 빈 문자로 바꾸는 것입니다.

이제 정규식이 어떤 문자와 일치합니까?

를 참조하십시오, 그래, 당신도 (당신이 \p{Sc}했던 똑같이 추가 할 수 있습니다

편집 :.

하는 것은 조심을 할 때 공백 문자가 이미 ASCII 범위에 있기 때문에이 경우 정규 표현식은 실제로는 [^\u0000-\u007F\p{Sc}] (공백 없음)이됩니다.

관련 문제