Работа с текстом (удалить знаки препинания, изменить регистр, заменить пробелы)

Garry Potter

Client
Регистрация
11.01.2022
Сообщения
39
Благодарностей
6
Баллы
8
Здравствуйте.
Подскажите, пожалуйста:
Как за один кубик из переменной в Зенно:
1. Удалить все знаки препинания (: , ; " « » ! ?)
2. Привести все слова к нижнему регистру
3. Заменить пробелы на дефисы.

Пример:
Переменная title содержит:
Quadcopter: what it is, types, uses

Нужно получить:
quadcopter-what-it-is-types-uses
и записать в переменную url_serf

Знаю, как за 3 кубика, но как за один... Я так понимаю, без C# не обойтись?
Буду благодарен за помощь.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 718
Баллы
113

dmitlife

Client
Регистрация
25.04.2019
Сообщения
43
Благодарностей
26
Баллы
18
Здравствуйте.
Подскажите, пожалуйста:
Как за один кубик из переменной в Зенно:
1. Удалить все знаки препинания (: , ; " « » ! ?)
2. Привести все слова к нижнему регистру
3. Заменить пробелы на дефисы.

Пример:
Переменная title содержит:
Quadcopter: what it is, types, uses

Нужно получить:
quadcopter-what-it-is-types-uses
и записать в переменную url_serf

Знаю, как за 3 кубика, но как за один... Я так понимаю, без C# не обойтись?
Буду благодарен за помощь.
Вот так получается в один кубик на C#
C#:
// Переменная для обработки
string text = project.ExecuteMacro(project.Variables["title"].Value);
// Удалить все, что не является цифрой, буквой, пробелом, подчеркиванием или одинарной кавычкой.
text = Macros.TextProcessing.Replace(text, @"[^\w\s\']", "", "Regex", "All").Trim();
// Обработка текста к нижнему регистру"ToLower"
text = Macros.TextProcessing.ToLower(text, "All");
// Замена на дефис
project.Variables["url_serf"].Value = Macros.TextProcessing.Replace(text, " ", "-", "Text", "All");
 
Последнее редактирование:
  • Спасибо
Реакции: art22 и Garry Potter

Garry Potter

Client
Регистрация
11.01.2022
Сообщения
39
Благодарностей
6
Баллы
8
Работает, большое спасибо!
 

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