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

use*_*403 29 c# regex

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

例如:

Hello@Hello&Hello(Hello)
Run Code Online (Sandbox Code Playgroud)

输出 -

Hello,Hello,Hello,Hello,
Run Code Online (Sandbox Code Playgroud)

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

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

Ish*_*ain 58

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

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]+", ",");
Run Code Online (Sandbox Code Playgroud)


Ser*_*kiy 10

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

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

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

  • `\ w`不匹配字母,它也匹配`_`. (3认同)

Guf*_*ffa 8

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

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

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

  • 为什么选择downvote?如果你不解释你认为错的是什么,它就无法改善答案. (3认同)