Обработка текста - замена

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Нужно сделать уникальным текст. Т.е. в тексте заменить русские буквы р,е,о,а на похожие английские.
Можно ли это сделать в одно действие с помощью экшена Обработка текста - Замена.

Вот скриншот:http://clip2net.com/s/4QKTDs

Если можно, покажите пожалуйста шаблон регулярки.
 

Hungry Bulldozer

Moderator
Регистрация
12.01.2011
Сообщения
3 441
Благодарностей
831
Баллы
113

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Извините, я неправильно объяснил что мне нужно.
Как автоматически привести текст под номером 1 к виду под номером 2 средствами Зенно для дальнейшего использования в Spintax?

1) Привет, как дела?

2) П{р|p}ив{e|е}т, к{a|а}к д{е|e}л{а|a}

А то очень неудобно вносить правки в базу такого вида =)
 

Вложения

www

Client
Регистрация
09.02.2012
Сообщения
50
Благодарностей
9
Баллы
8
Самое очевидное наверное...

Обработка текста -> Замена

Что искать - р
На что заменить - {р|p}

И так для все нужных букв
 

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Самое очевидное наверное...

Обработка текста -> Замена

Что искать - р
На что заменить - {р|p}

И так для все нужных букв

А в одно действие никак? А то получается вот такая громоздкая конструкция:
911999999.jpg
 

www

Client
Регистрация
09.02.2012
Сообщения
50
Благодарностей
9
Баллы
8
скорее всего regex-ом можно, но тут я не помогу :-)
 
  • Спасибо
Реакции: surrealmix

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Можно через код С#

var yourText = project.Variables["your_variable_name"].Value;
return yourText.Replace("один","1").Replace("два","2").Replace("три","3").Replace("четыре","4");
 

ZennoScript

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

www

Client
Регистрация
09.02.2012
Сообщения
50
Благодарностей
9
Баллы
8

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Можно через код С#

var yourText = project.Variables["your_variable_name"].Value;
return yourText.Replace("один","1").Replace("два","2").Replace("три","3").Replace("четыре","4");
Спасибо! То что надо!


А если усложнить задачу:

Сразу заменить русские символы на конструкцию {русский символ|похожий на русский английский символ} ,а затем английские на такую же конструкцию, только исключая уже изменённые конструкции.
Т.е. чтобы не получилось так:
Машина Honda =>изменили и получили=> {М|M}{а|a}шин{а|a} Honda,
затем после этого преобразовали также слово Honda. Но если это сделать через код с-шарп приведённый выше, то получиться совсем не то что надо, т.к. при втором проходе поменяется первое слово.
=> {М|M}{а|{а|а}}шин{а|{а|а}} {H|Н}{o|о}nd{а|a}
 

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Спасибо! То что надо!


А если усложнить задачу:

Сразу заменить русские символы на конструкцию {русский символ|похожий на русский английский символ} ,а затем английские на такую же конструкцию, только исключая уже изменённые конструкции.
Т.е. чтобы не получилось так:
Машина Honda =>изменили и получили=> {М|M}{а|a}шин{а|a} Honda,
затем после этого преобразовали также слово Honda. Но если это сделать через код с-шарп приведённый выше, то получиться совсем не то что надо, т.к. при втором проходе поменяется первое слово.
=> {М|M}{а|{а|а}}шин{а|{а|а}} {H|Н}{o|о}nd{а|a}
Вопрос актуален.
 

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Вопрос актуален.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
{а|{а|а}} такая конструкция тоже будет обрабатываться в спинтаксе.
По другому не вижу тут вариантов как сделать.
 
  • Спасибо
Реакции: surrealmix

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63
Можно через код С#

var yourText = project.Variables["your_variable_name"].Value;
return yourText.Replace("один","1").Replace("два","2").Replace("три","3").Replace("четыре","4");
Я думал может можно такой же конструкцией прогнать текст второй раз но с исключением конструкций созданных ранее (написать в коде исключения - мол обрабатывать всё, но некоторое пропускать). Большое спасибо, Daniilneet, за помощь!
 

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