C# 正则表达式从电子邮件中删除不需要的字符

C# 正则表达式从电子邮件中删除不需要的字符,c#,regex,C#,Regex,我正在使用下面的代码从电子邮件中删除一些不需要的字符。但是正则表达式替换了“.”符号,即使我在要删除的字符集中没有提到 string emailText = @"[\s;'\(\)\[\]!#\$%&\*\+-\?>=<_:\/\""]"; var stringInput = Console.ReadLine(); //Input "sara@gmail.com" var stringTest = Regex.Replace(stringInput, emailText,st

我正在使用下面的代码从电子邮件中删除一些不需要的字符。但是正则表达式替换了“.”符号,即使我在要删除的字符集中没有提到

string emailText = @"[\s;'\(\)\[\]!#\$%&\*\+-\?>=<_:\/\""]";
var stringInput = Console.ReadLine(); //Input "sara@gmail.com"
var stringTest = Regex.Replace(stringInput, emailText,string.Empty); //Output "sara@gmailcom"
请帮我解决这个问题

谢谢和问候, Saravanakumar R.

移动-移动到[…]的起点或终点

+-\??使+ASCII 43和?ASCII 63之间的所有字符匹配。 .ASCII 45包含在该范围内。

在regexp中,\+-\?表示介于+和?之间的ASCII字符范围,其中包括大量标点符号,包括


您应该转义-以防止它表示字符范围。另一方面,您不需要转义[]中的大多数其他特殊字符。

减号-也应该转义

string emailText = @"[\s;'\(\)\[\]!#\$%&\*\+\-\?>=<_:\/\""]";

没有\+-\,但是\+-\?非常感谢Barmar-