2016-06-07 1 views
-1

UTF8 텍스트에서 모든 특수 문자를 제거하고 싶지만 일치하는 정규 표현식을 찾을 수 없습니다. 이 같은C#의 UTF8 텍스트에서 특수 문자를 모두 제거하려면 어떻게합니까?

내 텍스트 :

_->,.!"%=%! 나는이 정규식을 시도 :

result = Regex.Replace(text, @"([^a-zA-Z0-9_]|^\s)", ""); 

을 그러나 그것은 또한 내 uft8의 문자를 제거

ASDÉÁPŐÓÖŰ_->,.!"%=%!HMHF 

난 단지 이러한 문자를 제거하고 싶습니다.

악센트 부호가있는 문자를 제거하고 싶지 않지만 모든 문자 모양을 제거하고 싶습니다.

+0

"특수 문자"를 정의하십시오. Uncode에는 수천 개의 문자가 포함되어 있습니다. 유지하려는 범주를 시작으로하고 ("utf8 char"은 의미가 없으며 UTF-8은 유니 코드 코드를 단순히 옥텟 스트림으로 인코딩 한 것임) 문자 택 소노 미에 관해서는 아무것도 아님). – Richard

+0

'\ P {L}'은 (는) * 문자가 아닌 모든 문자와 일치해야합니다. – ClasG

+0

나는 그것이 중복이라고 생각하지 않는다. 나는 그것이 UTF-8을 포함하고 있는지 아닌지를 결정할 필요가 없다. utf8 문자열에서 모든 글리프 및 다른 문자를 제거하고 싶습니다. 나는 악센트 부호가있는 문자를 제거하고 싶지 않습니다 ... – tixovoxi

답변

0
Regex.Replace(text, @"([^\w]|_)", "") 
: 당신은 또한 당신의 문자열에 머물 가지의 사용자 지정 방법을 원하는 경우 ASCII 테이블의 범위를 지정을 시도 할 수

result = Regex.Replace(text, "[^0-9a-zA-Z]+", ""); 

:

는 다음이 솔루션입니다

+0

좋아요! 고맙습니다. 그것은 모든 비 숫자 및 비 알파벳 문자를 제거하고 다음과 같이 utf8 문자를 유지합니다. – tixovoxi

+0

@tixovoxi 문제가 해결되면 대답을 수락 할 수 있습니까? – filhit

+0

나는 4 분을 기다려야한다고 말한다. : D – tixovoxi

0

숫자와 문자 만 원하십니까?

result = Regex.Replace(text, "[^\x00-\x80]+", ""); 
+0

이것은 편지입니다 : ú – tixovoxi

+0

이것은 단지 샘플이며, 당신의 필요에 따라 편집 할 수 있습니다! – kamp

관련 문제