Нам нужна функция С#, которая удалит все специальные символы из строки.
Кроме того, можно ли изменить "Джордж" на "Джордж" (удалить как одиночные кавычки, так и символы)?
Нам нужна функция С#, которая удалит все специальные символы из строки.
Кроме того, можно ли изменить "Джордж" на "Джордж" (удалить как одиночные кавычки, так и символы)?
Этот метод удалит все, кроме букв, цифр и пробелов. Он также удалит любой символ "или", за которым последует символ s.
public static string RemoveSpecialCharacters(string input)
{
Regex r = new Regex("(?:[^a-z0-9 ]|(?<=['\"])s)", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled);
return r.Replace(input, String.Empty);
}
public static string RemoveSpecialCharacters(string input)
{
Regex r = new Regex(
"(?:[^a-zA-Z0-9 ]|(?<=['\"])s)",
RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled);
return r.Replace(input, String.Empty);
}
Ответ Райана правильный. Просто добавьте A-Z
, как и многие люди, нуждающиеся в этом.
Помогло бы, если бы мы знали, что такое особый персонаж. Здесь функция, которая сделает трюк
public bool IsSpecialChar(char c) {
// Need you to fill this out
}
public string RemoveSpecialChars(string s) {
var builder = new System.Text.StringBuilder();
foreach (var cur in s) {
if (!IsSpecialChar(cur)) {
builder.Append(cur);
}
}
return builder.ToString();
}
Лучше определить список символов, которые вы хотите сохранить, вместо перечисления всех других, которые вам не нужны. Например, использование perlregexes s/[^A-Za-z0-9]+//g
удалит любой символ без слова (извините, я не знаком с С# regexes: D).
Для вашей другой проблемы вы можете определить, что удалить на основе предыдущего слова, если вам небезразличны некоторые случаи (например, только удаление 's
, если перед ним есть слово), иначе просто удалите все вхождения 's
.