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

Страниц (25): В начало « ... 17 18 19 20 21 [22] 23 24 25 »
 

211. KevinS - 25 Июля, 2022 - 03:41:29 - перейти к сообщению
 Martin пишет:
по аналогии из примера в начале темы пытаюсь найти текст между двумя словами, но не получается, помогите пожалуйста разобраться


string P[10];
string T="Как найти текст между слов)";
string R="(?<=текст)[А-я]+(?=слов)";
int k=regexsearch(-1, #P[0], T, R);
for (int n=0; n<k; n++)
{
messagebox (P[n]);
}


CODE:

string P[10];
string T="Как найти текст между слов)";
string R="(?<=текст)"+"(.*)+(?=слов)";
int k=regexsearch(-1, #P[0], T, R);
for (int n=0; n<k; n++)
{
messagebox (P[n]);
}
212. Zireael - 25 Июля, 2022 - 11:52:00 - перейти к сообщению
 Цитата:
найти текст между двумя словами

CODE:
string s = "Как найти текст между слов";
string result;
if(regexsearch(1, #result, s, "(?<=найти).+(?=слов)"))
{
messagebox(result);
}
else messagebox("Не найдено");
213. Martin - 25 Июля, 2022 - 17:40:53 - перейти к сообщению
KevinS , не находит если больше двух слов между словами.

Zireael , Спасибо!

А как сделать проверку нескольких слов?
Если в тексте есть слова "первое, второе, и т.д." то выполнить действие1 иначе действие2?
214. Zireael - 25 Июля, 2022 - 21:55:14 - перейти к сообщению
 Цитата:
А как сделать проверку нескольких слов?
Если в тексте есть слова "первое, второе, и т.д." то выполнить действие1 иначе действие2?

CODE:
string s = "первое, второе, третье и т.д.";
string result;
if(regexsearch(1, #result, s, "второе|третье|четвёртое")) // если в тексте есть есть одно из слов
{
messagebox("Действие1");
}
else messagebox("Действие2");

CODE:
string s = "Как найти текст между первое, второе, третье и т.д. слов";
string result;
if(regexsearch(1, #result, s, "(?<=найти).+(?=слов)")) // найти текст между словами: найти и слов
{
messagebox(result);
if(regexsearch(1, #result, result, "второе|третье|четвёртое")) // если в тексте есть есть одно из слов
{
messagebox("Действие1");
}
else messagebox("Действие2");
}
else messagebox("Не найдено");
215. konctantin777 - 02 Сентября, 2022 - 04:34:28 - перейти к сообщению
Здравствуйте.
Есть текст который бывает вида "3 ч 56 мин" и "36 мин 45 с". Как получать именно минуты ? Вырезанием и заменой не получается..
216. Zireael - 02 Сентября, 2022 - 04:53:56 - перейти к сообщению
CODE:
string s = "3 ч 56 мин";
string result;

regexreplace(-1, #result, s, " ", ""); // удалить пробелы
if(regexsearch(1, #result, result, "\d+(?=мин)")) // найти число перед словом мин
{
messagebox(result);
}
else messagebox("Не найдено");
217. rora - 15 Ноября, 2022 - 16:36:00 - перейти к сообщению
Уважаемые гуру как получить цифру между hello и tree ?
CODE:
<tr>
<td class="one">hello</td>
<td class="two">1</td>
<td class="tree">world</td>.
</tr>
<tr>
<td class="one">privet</td>
<td class="two">32</td>
<td class="tree">mir</td>.
</tr>
218. Zireael - 15 Ноября, 2022 - 17:30:01 - перейти к сообщению
 Цитата:
как получить цифру между hello и tree ?

CODE:
string result;
string text = "<tr>"+
"<td class=^"one^">hello</td>"+
"<td class=^"two^">1</td>"+
"<td class=^"tree^">world</td>."+
"</tr>"+
"<tr>"+
"<td class=^"one^">privet</td>"+
"<td class=^"two^">32</td>"+
"<td class=^"tree^">mir</td>."+
"</tr>";

messagebox(text);

if(regexsearch(1, #result, text, "(?<=hello).+?(?=tree)")) // найти текст между hello и tree
{
messagebox(result);
if(regexsearch(1, #result, result, "\d+")) // найти число
{
messagebox(result);
}
}
219. rora - 16 Ноября, 2022 - 17:10:35 - перейти к сообщению
Zireael , Спасибо, а в чем может быть ошибка когда тот же самый код с сайта пытаюсь спарсить ? Могут ли влиять переносы строки и пробелы на поиск?
(Добавление)
Разобрался, нужно использовать флаги.
220. Kibor - 17 Ноября, 2022 - 09:52:23 - перейти к сообщению
CODE:
string result;
string text = "<tr>"+
"<td class=^"one^">hello</td>"+
"<td class=^"two^">1</td>"+
"<td class=^"tree^">world</td>."+
"</tr>"+
"<tr>"+
"<td class=^"one^">privet</td>"+
"<td class=^"two^">32</td>"+
"<td class=^"tree^">mir</td>."+
"</tr>";

messagebox(text);
result=cuttext(text,"hello", "tree");
messagebox(result);
if(regexsearch(1, #result, result, "\d+")) // найти число
{
messagebox(result);
}

Powered by ExBB FM 1.0 Final