Как заменить весь специальный символ на строку с помощью С#
Я хотел бы заменить все специальные символы в строке с помощью comma (,)
.
Пример:
[email protected]&Hello(Hello)
вывод -
Hello,Hello,Hello,Hello,
(я не знаю, как использовать regexp в С#)
Могу ли я выполнить эту работу с помощью regexp в С#?
Ответы
Ответ 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);