Метод 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 такой вариант возможен!
 

alex8020

Client
Регистрация
16.08.2016
Сообщения
38
Благодарностей
39
Баллы
18
Может так

C#:
string text = project.Variables["text"].Value;
text = text.Replace("\r\n", "").Replace(" ", "");
return text.Length.ToString();
 
  • Спасибо
Реакции: Metodist

Metodist

Client
Регистрация
10.10.2016
Сообщения
34
Благодарностей
17
Баллы
8

kagorec

Client
Регистрация
24.08.2013
Сообщения
978
Благодарностей
521
Баллы
93
  • Спасибо
Реакции: Metodist

Metodist

Client
Регистрация
10.10.2016
Сообщения
34
Благодарностей
17
Баллы
8
@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
 

alex8020

Client
Регистрация
16.08.2016
Сообщения
38
Благодарностей
39
Баллы
18
  • Спасибо
Реакции: Metodist

kagorec

Client
Регистрация
24.08.2013
Сообщения
978
Благодарностей
521
Баллы
93
Как вариант соблюдать последовательность
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

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
581
Баллы
93
Человек выше правильно написал - соблюдайте последовательность:
regexTest - regexTest
regexTest1 - regexTest1
regexTest2 - regexTest2
 
  • Спасибо
Реакции: Metodist

radv

Client
Регистрация
11.05.2015
Сообщения
3 785
Благодарностей
1 949
Баллы
113
Делайте перебор и змамену в цикле.
C#:
string SourceText = "Какой то текст";

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

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