Массовые замены в тексте

Hannes

Client
Регистрация
03.02.2016
Сообщения
496
Благодарностей
237
Баллы
43
Здравствуйте!

Подскажите, пожалуйста, есть какое-то готовое решение для массовой замены текста в переменной/списке?

Например, что бы можно было в один txt файл сделать список замен:
слово1|замена1
слово2|замена2
слово3|замена3
и по этому списку проверять и заменить слова в тексте/списке.
 

LiMe

Client
Регистрация
10.12.2015
Сообщения
596
Благодарностей
316
Баллы
63
Ваше решение делается в несколько кубиков. В список складываете что и на что заменять. Берете строку, разбиваете на два переменные и заменяете, и так до тех пор пока у вас не закончатся строки в файле.
Надеюсь понятно объяснил, только проснулся.
 
  • Спасибо
Реакции: Hannes и Sergodjan

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 470
Благодарностей
8 691
Баллы
113
Здравствуйте!

Подскажите, пожалуйста, есть какое-то готовое решение для массовой замены текста в переменной/списке?

Например, что бы можно было в один txt файл сделать список замен:
слово1|замена1
слово2|замена2
слово3|замена3
и по этому списку проверять и заменить слова в тексте/списке.
Есть готовый пример подобного проекта:
https://zennolab.com/discussion/threads/obrabotka-teksta-kak-realizovat-sinonimajzer.15996/#post-328111
 
  • Спасибо
Реакции: Hannes

Hannes

Client
Регистрация
03.02.2016
Сообщения
496
Благодарностей
237
Баллы
43
Спасибо вам огромное! :dk::bo:
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Код:
string str = project.Variables["stroka_S_textom"].Value;
var ReplaceList = project.Lists["ReplaceList"]; //список замен
for(int i = 0; i < ReplaceList.Count; i++)
{
    string[] Rstr = ReplaceList[i].Split('|'); 
    str = Regex.Replace(str, @"\b" + Rstr[0] + @"\b", Rstr[1]);
}
return str;
 
  • Спасибо
Реакции: doc и Hannes

LmPopo

Client
Регистрация
06.12.2012
Сообщения
299
Благодарностей
136
Баллы
43
  • Спасибо
Реакции: doc и SergSh

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63

LmPopo

Client
Регистрация
06.12.2012
Сообщения
299
Благодарностей
136
Баллы
43

Hannes

Client
Регистрация
03.02.2016
Сообщения
496
Благодарностей
237
Баллы
43
У меня вариант с C# не работает.
Можете посмотреть шаблон?
 

Вложения

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Снимок экрана (4).png
У меня вариант с C# не работает.
Можете посмотреть шаблон?
список замен с названием ReplaceList создан в проекте?
переменная stroka_S_textom с текстом для замены создана в проекте и туда передается этот текст?
результат замены в какую переменную возвращается? в кубике в низу выбрана переменная для результата?
 
  • Спасибо
Реакции: Hannes

Hannes

Client
Регистрация
03.02.2016
Сообщения
496
Благодарностей
237
Баллы
43
Замены_Зенно.jpg


Содержимое файла с текстом:
А у меня в спичечном коробке есть снежинка. Дело было ещё в феврале, валил снег, а я подставил коробок, поймал одну снежинку побольше и - раз! - захлопнул, скорей побежал домой и сунул в холодильник... На весь штат Иллинойс у меня одного летом есть снежинка. Такой клад больше нигде не сыщешь, хоть тресни

Содержимое файла с заменами:
холодильник|морозильник
Иллинойс|Техас


Шаблон отрабатывает, но замен нет.
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
заменить str = Regex.Replace(str, @"\b" + Regex.Escape(Rstr[0]) + @"\b", Rstr[1]);
на str = Regex.Replace(str, @"\b" + Rstr[0] + @"\b", Rstr[1]);
и все заработает
 
  • Спасибо
Реакции: Hannes

LiMe

Client
Регистрация
10.12.2015
Сообщения
596
Благодарностей
316
Баллы
63
Набросал на кубиках, получилось вот так:
upload_2018-12-5_19-22-58.png

Поменяйте просто под себя, что откуда брать и т.д. и пользуйтесь.
 

Вложения

  • Спасибо
Реакции: Mihalich и Hannes

Hannes

Client
Регистрация
03.02.2016
Сообщения
496
Благодарностей
237
Баллы
43
заменить str = Regex.Replace(str, @"\b" + Regex.Escape(Rstr[0]) + @"\b", Rstr[1]);
на str = Regex.Replace(str, @"\b" + Rstr[0] + @"\b", Rstr[1]);
и все заработает
Попробовал. Не работает. Выполняется успешно, но замен нет.(
Набросал на кубиках, получилось вот так:
Посмотреть вложение 34079
Поменяйте просто под себя, что откуда брать и т.д. и пользуйтесь.
Спасибо!
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63

Hannes

Client
Регистрация
03.02.2016
Сообщения
496
Благодарностей
237
Баллы
43
Мой косяк в привязке файла замен был.
Всё работает.
Большое спасибо за помощь и несколько вариантов решения. Последнее время не часто пользуюсь Зенкой и допустил глупые ошибки.
Ещё раз огромное спасибо!
 
  • Спасибо
Реакции: LiMe и SergSh

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