使用正则表达式从字符串中删除标点符号和空格

Gan*_*er7 4 c# regex string encryption

我试图取出一个字符串中的所有标点符号和空格,我将使用Playfair Cipher加密.我无法弄清楚为什么这条线不起作用.

s = Regex.Replace(s, @"[^\w\s]", string.Empty);
Run Code Online (Sandbox Code Playgroud)

p.s*_*w.g 8

[^\w\s]意味着删除任何不是单词或空白字符的东西.

试试这个:

s = Regex.Replace(s, @"[^\w]", string.Empty);
Run Code Online (Sandbox Code Playgroud)

你也可以使用:

s = Regex.Replace(s, @"\W", string.Empty);
Run Code Online (Sandbox Code Playgroud)

当然,这将留下下划线,因为那些被认为是单词字符.要删除它们,请尝试以下方法:

s = Regex.Replace(s, @"[\W_]", string.Empty);
Run Code Online (Sandbox Code Playgroud)

或这个:

s = Regex.Replace(s, @"\W|_", string.Empty);
Run Code Online (Sandbox Code Playgroud)