C# 忽略用户输入C中的所有标点符号#

C# 忽略用户输入C中的所有标点符号#,c#,C#,如何从用户输入中删除所有标点符号?我有一个字符串变量保存输入,但输入也可以如下所示: string line = " :%tgc_7_$;:U|F]wyWhb3230;n7"`da "; 所以很明显,引号会弄乱整个代码。我试过这个 var sb = new StringBuilder(); foreach (char c in line) { if (!char.IsPunctuation(c)) sb.Append(c); } line = sb.T

如何从用户输入中删除所有标点符号?我有一个字符串变量保存输入,但输入也可以如下所示:

string line = " :%tgc_7_$;:U|F]wyWhb3230;n7"`da ";
所以很明显,引号会弄乱整个代码。我试过这个

 var sb = new StringBuilder();

 foreach (char c in line)
 {
     if (!char.IsPunctuation(c))
         sb.Append(c);
 }

 line = sb.ToString();
但这并不能解决报价问题。谢谢你给我的建议


编辑-我只想从中提取数字,我有代码,但我需要一个不带引号的字符串“”和=,因为当它出现时,我得到一个错误

要根据注释和编辑实现您想要的内容,只需简单地更改即可

 var sb = new StringBuilder();

 foreach (char c in line)
 {
     if (char.IsDigit(c))
         sb.Append(c);
 }

 line = sb.ToString();

行后面应该只有数字。

您是说后面的勾号(`)字符吗?反勾号是Unicode中的“符号”,而不是标点符号。那么你想要的就是数字和字符?为什么你说引号会弄乱整个代码。我怀疑不止双引号满足ispuncuation(),如果双引号干扰了代码,那么您是否尝试过转义它?例如:
string line=“blah\”blah“
。问题是我不知道“字符”将出现在哪里,或者=将出现在哪里。我只知道我将有一个充满随机字符的字符串,我想删除所有标点符号,以便以后可以从中提取数字it@Crash
我想删除所有标点符号,以便以后从中提取数字
===>仅供参考:您的代码可以简化为一行
line=string.Concat(line.Where(char.IsDigit))