Подтвердить что ты не робот

Как заменить весь специальный символ на строку с помощью С#

Я хотел бы заменить все специальные символы в строке с помощью comma (,).

Пример:

[email protected]&Hello(Hello)

вывод -

Hello,Hello,Hello,Hello,

(я не знаю, как использовать regexp в С#)

Могу ли я выполнить эту работу с помощью regexp в С#?

4b9b3361

Ответ 1

Да, вы можете использовать regular expressions в С#.

Using regular expressions with C#:

using System.Text.RegularExpressions;

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

Ответ 2

Предположим, вы хотите заменить символы, которые не являются цифрами или буквами (и _ символом, указанным как @Guffa правильно):

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

Вы можете добавить еще один символ, который нельзя заменить. Например. если вам нужны символы пробела, то просто добавьте \s в шаблон: \[^\w\d\s]

Ответ 3

Вы можете использовать регулярное выражение, например, для замены всех несимвольных символов запятыми:

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

Примечание. + после набора заставит его заменить каждую группу не буквенно-цифровых символов запятой. Если вы хотите заменить каждый символ запятой, просто удалите +.

Ответ 4

Кроме того, это можно сделать с помощью LINQ

var str = "[email protected]&Hello(Hello)";
var characters = str.Select(c =>
        {
            if (!char.IsLetter(c)) return ',';
            return c;
        }).ToArray();

   var output = new string(characters);
   Console.WriteLine(output);