2013-04-14 2 views

답변

7

[^\w\s] 수단은 단어 나 공백 문자 아니에요 아무것도 제거합니다.

대신을 시도해보십시오

s = Regex.Replace(s, @"[^\w]", string.Empty); 

당신은 또한 사용할 수 있습니다 사람들이 단어의 문자로 간주됩니다으로 밑줄을 떠나 물론

s = Regex.Replace(s, @"\W", string.Empty); 

. 뿐만 아니라 사람들을 제거하려면 다음을 수행하십시오

s = Regex.Replace(s, @"[\W_]", string.Empty); 

또는이 :

s = Regex.Replace(s, @"\W|_", string.Empty); 
+0

와우, 나는 그것을 놓친 것을 믿을 수 없다. 고마워. – Gander7

1

^ 문자는 의미 없습니다. 영숫자가 아닌 모든 것을 하이픈으로 대체하기 위해 [^A-Za-z0-9-]을 사용합니다.

2

Regex 대신 Linq를 사용하는 것은 어떻습니까?

string str = "abc; .d"; 
var newstr = String.Join("", str.Where(char.IsLetterOrDigit)); 
0

가장 좋은 방법은 \w_ 내가 너희를 유지하려는 않을 것 같은데요 0-9를 포함하고 있기 때문에 아마 [^A-Za-z]을 사용하는 것입니다.

다음 정규식은 a-z 또는 A-Z이 아닌 내용을 제거합니다.

관련 문제