Замена текста C#

ftbwork10

Client
Регистрация
29.05.2017
Сообщения
447
Благодарностей
700
Баллы
93
Нужно сделать замену текста с помощью C#, блоками получается очень много блоков и проект виснет. Пробовал сделать так, но ничего не получается.

Вот пример:

// Текст для обработки
string text = project.ExecuteMacro("11 jkkjkj 22 kjkjdoop 33 gpoogifp 44");
// Обработка текста "Замена"
project.Variables["ffff"].Value = Macros.TextProcessing.Replace(text, "11", "успешно", "Text", "All");
project.Variables["ffff"].Value = Macros.TextProcessing.Replace(text, "22", "успешно2", "Text", "All");
project.Variables["ffff"].Value = Macros.TextProcessing.Replace(text, "33", "успешно3", "Text", "All");
project.Variables["ffff"].Value = Macros.TextProcessing.Replace(text, "44", "успешно4", "Text", "All");

Но заменяет только одно условие. Как правильно сделать это?
 

ares.bct

Client
Регистрация
21.06.2016
Сообщения
20
Благодарностей
21
Баллы
3
PHP:
// Текст для обработки
string text = project.ExecuteMacro("11 jkkjkj 22 kjkjdoop 33 gpoogifp 44");
// Обработка текста "Замена"
text = Macros.TextProcessing.Replace(text, "11", "успешно", "Text", "All");
text = Macros.TextProcessing.Replace(text, "22", "успешно2", "Text", "All");
text = Macros.TextProcessing.Replace(text, "33", "успешно3", "Text", "All");
text = Macros.TextProcessing.Replace(text, "44", "успешно4", "Text", "All");
project.Variables["ffff"].Value = text;
 
  • Спасибо
Реакции: ftbwork10

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
C#:
string text = project.Variables["text"].Value; // переменная с текстом
text = text
    .Replace("11", "успешно")
    .Replace("22", "успешно2")
    .Replace("33", "успешно3")
    .Replace("44", "успешно4");
return text;
 

vaulroon

Client
Регистрация
20.10.2017
Сообщения
274
Благодарностей
11
Баллы
18
C#:
string text = project.Variables["text"].Value; // переменная с текстом
text = text
    .Replace("11", "успешно")
    .Replace("22", "успешно2")
    .Replace("33", "успешно3")
    .Replace("44", "успешно4");
return text;
А если у меня в тексте ковычки присутствуют?
.Replace("Слово "Правильно" написано правильно", "успех")
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
  • Спасибо
Реакции: kagorec

ares.bct

Client
Регистрация
21.06.2016
Сообщения
20
Благодарностей
21
Баллы
3
В таком случае кавычки нужно экранировать

.Replace("Слово \"Правильно\" написано правильно", "успех")
 

vaulroon

Client
Регистрация
20.10.2017
Сообщения
274
Благодарностей
11
Баллы
18
Я экранировал слешем, получил ошибку
Компиляция кода Ошибка в действии "CS1009" "Нераспознанная управляющая последовательность". [Строка: 2; Cтолбец: 417]
Да и добавив @ тоже выдает ошибку.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Я экранировал слешем, получил ошибку
Компиляция кода Ошибка в действии "CS1009" "Нераспознанная управляющая последовательность". [Строка: 2; Cтолбец: 417]
Да и добавив @ тоже выдает ошибку.
Может у тебя в тексте ещё обратные слэши встречаются? Их тоже нужно экранировать таким же обратным слэшем.
Или ошибка в другом кубике C#
 

ikibostus

Client
Регистрация
27.09.2015
Сообщения
256
Благодарностей
26
Баллы
28
Как через Macros.TextProcessing.Replace(text, """, "\"", "Text", "All") выполнить замену одинарной кавычки - " на \" ?
 
Последнее редактирование:

ikibostus

Client
Регистрация
27.09.2015
Сообщения
256
Благодарностей
26
Баллы
28
Как через Macros.TextProcessing.Replace(text, """, "\"", "Text", "All") выполнить замену одинарной кавычки - " на \" ?
Пока сделал через преобразование в UrlEncode и замену. Может есть более умные варианты)
 
Последнее редактирование:

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Пока сделал через преобразование в UrlEncode и замену. Может есть более умные варианты)
не понятно, что ты хочешь. Ты пишешь одинарную кавычку, а у тебя там и двойная
 

ikibostus

Client
Регистрация
27.09.2015
Сообщения
256
Благодарностей
26
Баллы
28
Я хочу заменить одинарные кавычки в тексте на одинарную с обратным слэшем.
 

ikibostus

Client
Регистрация
27.09.2015
Сообщения
256
Благодарностей
26
Баллы
28

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

ikibostus

Client
Регистрация
27.09.2015
Сообщения
256
Благодарностей
26
Баллы
28
Спасибо, получилось!
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 103
Благодарностей
132
Баллы
63
C#:
string text = project.Variables["text"].Value; // переменная с текстом
text = text
    .Replace("11", "успешно")
    .Replace("22", "успешно2")
    .Replace("33", "успешно3")
    .Replace("44", "успешно4");
return text;
А если искать не текст, а Regex, то как?
 

lokiys

Moderator
Регистрация
01.02.2012
Сообщения
4 811
Благодарностей
1 187
Баллы
113

Greez

Client
Регистрация
05.02.2014
Сообщения
85
Благодарностей
30
Баллы
18
C#:
string text = project.Variables["text"].Value; // переменная с текстом
text = text
    .Replace("11", "успешно")
    .Replace("22", "успешно2")
    .Replace("33", "успешно3")
    .Replace("44", "успешно4");
return text;
Как сделать замену символов которые надо экранировать? Например ( на \(
 

semen26

Client
Регистрация
30.09.2016
Сообщения
44
Благодарностей
27
Баллы
18
Не знаю как правильно сформулировать вопрос. Те кто кодит в php поймут меня, как такое реализовать в зенке ?
PHP:
$text = preg_replace('/<span class="post-font-serif2">([^<]*?)<(?=\/)\/span>/', "[font=\"serif\"]$1[/font]", $text);
 

semen26

Client
Регистрация
30.09.2016
Сообщения
44
Благодарностей
27
Баллы
18
Не знаю как правильно сформулировать вопрос. Те кто кодит в php поймут меня, как такое реализовать в зенке ?
PHP:
$text = preg_replace('/<span class="post-font-serif2">([^<]*?)<(?=\/)\/span>/', "[font=\"serif\"]$1[/font]", $text);
Все нашел ) через стандартный экшн
обработка текста->замена->regex
 

trubiser

Client
Регистрация
02.12.2016
Сообщения
211
Благодарностей
14
Баллы
18
Всем привет.
Прошу подсказать, как с помощью C# заменить ENTER на пустоту? Спасибо.
Код который я привел ниже не работает.

C#:
string text1 = project.Variables["name"].Value; // переменная с текстом
text1 = text1
    .Replace({ENTER}, "");
project.Variables["name"].Value = text1;
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113

trubiser

Client
Регистрация
02.12.2016
Сообщения
211
Благодарностей
14
Баллы
18
Спасибо.
А если в конце текста есть несколько пробелов которые нужно убрать, есть ли способ быстро очистить текст от лишних пробелов?
Спасибо.
 

ankur

Client
Регистрация
19.05.2012
Сообщения
83
Благодарностей
48
Баллы
18
Спасибо.
А если в конце текста есть несколько пробелов которые нужно убрать, есть ли способ быстро очистить текст от лишних пробелов?
Спасибо.
C#:
string text1 = project.Variables["name"].Value;
project.Variables["name"].Value = text1.Trim();
 
  • Спасибо
Реакции: trubiser

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
69
Баллы
28
Есть больше 50 переменных в них &quot; такие каракули как можно во всех переменных сразу удалить это все или заменить
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
Есть больше 50 переменных в них &quot; такие каракули как можно во всех переменных сразу удалить это все или заменить
C#:
foreach (string key in project.Variables.Keys)
        project.Variables[key].Value = project.Variables[key].Value.Replace("&quot;", "");
 

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
69
Баллы
28
А можно как то массово заменить текст не в переменной а в коде C# если есть возможность во всех проектах будет отлично
 

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