我想用comma (,)
替换字符串中的所有特殊字符。
例如:
Hello@Hello&Hello(Hello)
输出 -
Hello,Hello,Hello,Hello,
(我不知道如何在C#中使用regexp)
我可以在C#中使用regexp来完成这项工作吗?
答案 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);