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

时间:2013-04-14 21:04:37

标签: c# regex string encryption

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

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

4 个答案:

答案 0 :(得分:8)

[^\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);

答案 1 :(得分:2)

如何使用Linq而不是Regex?

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

答案 2 :(得分:1)

^字符表示不是。我使用[^A-Za-z0-9-]代替所有非字母数字的连字符。

答案 3 :(得分:0)

您最好的选择可能是使用[^A-Za-z],因为\w包含_0-9,我猜您不想保留。{/ p>

以下正则表达式会删除a-zA-Z之外的所有内容。

s = Regex.Replace(s, @"[^A-Za-z]", string.Empty);
相关问题