Kostick |
Отправлено: 19 Марта, 2023 - 01:22:45
|
Мастер
Покинул форум
Сообщений всего: 184
Дата рег-ции: Авг. 2020
Репутация: 1
|
Подскажите, как отредактировать найденный текст, чтобы стереть все, что после или до определенного символа, кроме данного символа?
Просто я нашел, как стереть все, что после или до символа, включая этот символ, а нужно, чтоб он остался.
CODE:
string Text_Cut_Wait;
string Text_Cut_2_Wait;
string Text_Wait = "Соответствии"; // Найденный текст
regexreplace(-1, #Text_Cut_Wait, Text_Wait, "(.*)(оо)", ""); // Заменить "оо" и все, что до него на ""
regexreplace(-1, #Text_Cut_2_Wait, Text_Cut_Wait, "(ви)(.+)", ""); // Заменить "ви" и все, что после него на ""
messagebox(Text_Cut_2_Wait); // Выведет "тветст"
И еще можно ли как-то объединить 2 строчки regexreplace в одну, чтобы стерлось и до "оо", и после "ви"?
(Добавление)
Нашел, как объединить 2 строчки в одну. Надо поставить "|":
CODE:string Text_Cut_Wait;
//string Text_Cut_2_Wait;
string Text_Wait = "Соответствии"; // Найденный текст
regexreplace(-1, #Text_Cut_Wait, Text_Wait, "(.*)(оо)|(ви)(.+)", ""); // Заменить "оо" и все, что до него на ""
//regexreplace(-1, #Text_Cut_2_Wait, Text_Cut_Wait, "(ви)(.+)", ""); // Заменить "ви" и все, что после него на ""
messagebox(Text_Cut_Wait);
(Добавление)
А как сделать, чтобы получить "оответстви", т.е. чтоб "оо" и "ви" остались?
(Добавление)
И еще как сделать так, чтобы в слове "соответствии" стиралось все, что после последнего "тв"? Здесь он стирает все, что после первого "тв".
CODE:string Text_Cut_Wait;
string Text_Wait = "Соответствии"; // Найденный текст
regexreplace(-1, #Text_Cut_Wait, Text_Wait, "(тв)(.+)", ""); // Заменить "тв" и все, что после него на ""
messagebox(Text_Cut_Wait); // Выведет "Соо"
А как сделать, чтобы вывел "Соответс"? |
|
|
Zireael |
Отправлено: 19 Марта, 2023 - 10:11:16
|
Эксперт
Покинул форум
Сообщений всего: 4468
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: как сделать, чтобы получить "оответстви", т.е. чтоб "оо" и "ви" остались?
CODE:string Text_Wait = "Соответствии"; // Найденный текст
regexsearch(1, #Text_Wait, Text_Wait, "оо.*ви");
messagebox(Text_Wait);
Цитата: как сделать так, чтобы в слове "соответствии" стиралось все, что после последнего "тв"?
CODE:string Text_Wait = "Соответствии"; // Найденный текст
regexreplace(1, #Text_Wait, Text_Wait, "тв.+?", "", RIGHTTOLEFT); // Заменить "тв" и все, что после него на ""
messagebox(Text_Wait); |
|
|
Kostick |
Отправлено: 19 Марта, 2023 - 13:19:41
|
Мастер
Покинул форум
Сообщений всего: 184
Дата рег-ции: Авг. 2020
Репутация: 1
|
CODE:string Text_Wait = "Соответствии"; // Найденный текст
regexsearch(1, #Text_Wait, Text_Wait, "о.*т"); // Стереть все, кроме того, что между первым "о" и последним "т"
messagebox(Text_Wait); // Выведет "оответст"
Разрешите, я еще поинтересуюсь? А как сделать, чтобы осталось то, что между вторым "о" и вторым "т"? Т.е. чтобы получилось "ответ"?(Отредактировано автором: 19 Марта, 2023 - 13:22:10) |
|
|
Zireael |
Отправлено: 19 Марта, 2023 - 13:32:16
|
Эксперт
Покинул форум
Сообщений всего: 4468
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: А как сделать, чтобы осталось то, что между вторым "о" и вторым "т"? Т.е. чтобы получилось "ответ"?
CODE:string Text_Wait = "Соответствии";
regexsearch(1, #Text_Wait, Text_Wait, "(?<=о)о.*?т.*?т");
messagebox(Text_Wait); |
|
|
|