繁体   English   中英

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

[英]Remove Punctuation and Spaces from string using Regex

我正在尝试取出要使用Playfair密码进行加密的字符串中的所有标点符号和空格。 我不知道为什么这条线不起作用。

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

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

如何使用Linq代替Regex?

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

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

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

以下正则表达式将删除azAZ任何内容。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM