如何使用C#将所有特殊字符替换为字符串

我想用comma (,)替换字符串中的所有特殊字符。

例如:

 Hello@Hello&Hello(Hello) 

输出 –

 Hello,Hello,Hello,Hello, 

(我不知道如何在C#中使用regexp)

我可以在C#中使用regexp来完成这项工作吗?

是的,您可以在C#中使用regular expressions

Using regular expressions with C#

 using System.Text.RegularExpressions; string your_String = "Hello@Hello&Hello(Hello)"; string my_String = Regex.Replace(your_String, @"[^0-9a-zA-Z]+", ","); 

假设您要替换不是数字或字母的符号(和@Guffa正确指向的_字符):

 string input = "Hello@Hello&Hello(Hello)"; string result = Regex.Replace(input, @"[^\w\d]", ","); // Hello,Hello,Hello,Hello, 

您可以添加其他不应替换的符号。 例如,如果你想要留下空白符号,那么只需将\s添加到pattern: \[^\w\d\s]

您可以使用常规表达式来例如用逗号替换所有非字母数字字符:

 s = Regex.Replace(s, "[^0-9A-Za-z]+", ","); 

注意:集合后面的+将使用逗号替换每组非字母数字字符。 如果要用逗号替换每个字符,只需删除+

此外,它可以使用LINQ完成

 var str = "Hello@Hello&Hello(Hello)"; var characters = str.Select(c => char.IsLetter(c) ? c : ',')).ToArray(); var output = new string(characters); Console.WriteLine(output);