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

时间:2014-01-27 17:55:02

标签: c# regex

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

例如:

Hello@Hello&Hello(Hello)

输出 -

Hello,Hello,Hello,Hello,

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

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

4 个答案:

答案 0 :(得分:53)

是的,您可以在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]+", ",");

答案 1 :(得分:10)

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

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

您可以添加其他不应替换的符号。例如。如果您希望保留空白符号,则只需将\s添加到模式:\[^\w\d\s]

答案 2 :(得分:8)

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

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

注意:设置后的+会使用逗号替换每组非字母数字字符。如果您想用逗号替换每个字符,只需删除+

答案 3 :(得分:3)

此外,可以使用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);