Метод Replace C#

Metodist

Client
Регистрация
10.10.2016
Сообщения
34
Реакции
17
Баллы
8
Подскажите пжл, как сделать множественный Replace

Метод Replace:
Развернуть Свернуть Копировать
string text = project.ExecuteMacro(project.Variables["text"].Value);
project.Variables["text"].Value = Macros.TextProcessing.Replace(text, "\r\n", "", "Text", "All").Replace(text, " ", "", "Text", "All");

string stringToCount = project.Variables["text"].Value;
return stringToCount.Length.ToString();
так не работает, хотя в docs miсrosoft такой вариант возможен!
 
Может так

C#:
Развернуть Свернуть Копировать
string text = project.Variables["text"].Value;
text = text.Replace("\r\n", "").Replace(" ", "");
return text.Length.ToString();
 
  • Оценить
Реакции: Metodist
  • Оценить
Реакции: Metodist
@orka13 поделился доброй подборкой снипетов, замена с применением регулярных выражений.
Да, прикольно. Там он просто подряд применяет методы, но у меня если подряд сделать, например так:

C#:
Развернуть Свернуть Копировать
// Текст для обработки
string text = project.ExecuteMacro(project.Variables["text"].Value);
// Обработка текста "Замена"

project.Variables["text"].Value = Macros.TextProcessing.Replace(text, "\r\n", "", "Text", "All").Replace(text, " ", "", "Text", "All");
project.Variables["text"].Value = Macros.TextProcessing.Replace(text, " ", "", "Text", "All").Replace(text, " ", "", "Text", "All");

То отрабатывает только последняя строка. Поэтому и хочу применить множественный или мулти, не знаю как верно, Replace
 
Как вариант соблюдать последовательность
C#:
Развернуть Свернуть Копировать
regexTest = System.Text.RegularExpressions.Regex.Replace(regexTest1, @"^.*(www\.|http|\[URL=\S+).*(\r\n|$)", "");
regexTest1 = System.Text.RegularExpressions.Regex.Replace(regexTest2, @"^.*\.(com|org|net|biz|info|de|ru|uk|tk)\W.*(\r\n|$)", "");
regexTest2 = System.Text.RegularExpressions.Regex.Replace(regexTest3, @"^.*(www\.|http|\[URL=\S+).*(\r\n|$)", "");
regexTest3 = System.Text.RegularExpressions.Regex.Replace(regexTest4, @"^.*\.(com|org|net|biz|info|de|ru|uk|tk)\W.*(\r\n|$)", "");
........
 
  • Оценить
Реакции: Metodist и Ilshakin
Человек выше правильно написал - соблюдайте последовательность:
regexTest - regexTest
regexTest1 - regexTest1
regexTest2 - regexTest2
 
  • Оценить
Реакции: Metodist
Делайте перебор и змамену в цикле.
C#:
Развернуть Свернуть Копировать
string SourceText = "Какой то текст";

// Массив со всеми значениями которые надо заменить или удалить например "₽", "л.с.", "км","л"
string[] arrSymbol = new string[] { "₽", "л.с.", "км","л" };
// Перебираем весь массив значений
foreach (string strSymbol in arrSymbol)
{
    // Заменяем все значения из массива на пустые строки
    SourceText = SourceText.Replace(strSymbol, string.Empty);
}
 
  • Оценить
Реакции: TwistDanceR и Metodist

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)