[英]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
,我猜您不想保留。
以下正则表达式将删除az
或AZ
任何内容。
s = Regex.Replace(s, @"[^A-Za-z]", string.Empty);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.