Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Не могу разобраться с регулярными выражениями

Страниц (1): [1]
 

1. Kostick - 18 Марта, 2023 - 18:22:45 - перейти к сообщению
Подскажите, как отредактировать найденный текст, чтобы стереть все, что после или до определенного символа, кроме данного символа?
Просто я нашел, как стереть все, что после или до символа, включая этот символ, а нужно, чтоб он остался.
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); // Выведет "Соо"

А как сделать, чтобы вывел "Соответс"?
2. Zireael - 19 Марта, 2023 - 03:11:16 - перейти к сообщению
 Цитата:
как сделать, чтобы получить "оответстви", т.е. чтоб "оо" и "ви" остались?

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);
3. Kostick - 19 Марта, 2023 - 06:19:41 - перейти к сообщению
CODE:
string Text_Wait = "Соответствии"; // Найденный текст
regexsearch(1, #Text_Wait, Text_Wait, "о.*т"); // Стереть все, кроме того, что между первым "о" и последним "т"
messagebox(Text_Wait); // Выведет "оответст"


Разрешите, я еще поинтересуюсь? А как сделать, чтобы осталось то, что между вторым "о" и вторым "т"? Т.е. чтобы получилось "ответ"?
4. Zireael - 19 Марта, 2023 - 06:32:16 - перейти к сообщению
 Цитата:
А как сделать, чтобы осталось то, что между вторым "о" и вторым "т"? Т.е. чтобы получилось "ответ"?

CODE:
string Text_Wait = "Соответствии";
regexsearch(1, #Text_Wait, Text_Wait, "(?<=о)о.*?т.*?т");
messagebox(Text_Wait);
5. Kostick - 19 Марта, 2023 - 19:26:08 - перейти к сообщению
 Zireael пишет:

CODE:
string Text_Wait = "Соответствии";
regexsearch(1, #Text_Wait, Text_Wait, "(?<=о)о.*?т.*?т");
messagebox(Text_Wait);


Вечная благодарность вам, Zireael! Все супер.

Powered by ExBB FM 1.0 Final