Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Без описания
Kibor
Отправлено: 03 Мая, 2023 - 19:54:04
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8113
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 konctantin777 пишет:
А как правильно, чтобы текст не деформировался ?

Не ставить галку удалять пробелы и находить это ДА и кликать по нему
 Цитата:
string Text;
loadsymbolbase ("C:\Program Files (x86)\Kibor\basetext.sib");
readtext (RU, #Text, 2, 1, -1, -1, -1, -1, -1, 0, 50, 53, 346, 135, 361, -1);
if (regexsearch(1, #Text, Text, "(?<=\s)д(\s|)а(?=\s)")) // найти слово да
{
mousemove(53+symbolxpos(regexstart(0)), 346+symbolypos(regexstart(0)));
}
 
 Top
Zireael
Отправлено: 03 Мая, 2023 - 19:56:15
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4427
Дата рег-ции: Нояб. 2017  
Репутация: 584




 Цитата:
regexsearch(1, #Text, Text, "д(\s|)а" ); // найти слово да

CODE:
regexsearch(1, #Text, Text, "д\s*а"); // найти слово да, между буквами могут быть пробелы
 
 Top
Kibor
Отправлено: 03 Мая, 2023 - 19:57:36
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8113
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Я уже поправил.
И учел что это должно быть отдельное ДА? а не часть слова(для просмотра ссылки Вам необходимо авторизоваться)
CODE:
(\s|)
может быть либо один пробел либо не быть. Пробел всегда может быть только один после распознавания.
 
 Top
Zireael
Отправлено: 03 Мая, 2023 - 20:26:11
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4427
Дата рег-ции: Нояб. 2017  
Репутация: 584




 Цитата:
(\s|)

Вместо | должна быть *, скобки не нужны.
 Цитата:
И учел что это должно быть отдельное ДА? а не часть слова

Не учтено что слово может быть в самом начале или конце строки.
Так надо:
CODE:
string Text;
loadsymbolbase ("C:\Program Files (x86)\Kibor\basetext.sib");
readtext (RU, #Text, 2, 1, -1, -1, -1, -1, -1, 0, 50, 53, 346, 135, 361, -1);
if (regexsearch(1, #Text, Text, "(?<=\s|^)д\s*а(?=\s|$)")) // найти слово да
{
mousemove(53+symbolxpos(regexstart(0)), 346+symbolypos(regexstart(0)));
}
 
 Top
Kibor
Отправлено: 03 Мая, 2023 - 20:38:11
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8113
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 Zireael пишет:
Вместо | должна быть *, скобки не нужны.

Разве (\s|)
не означает
Либо пробел либо ничто? Работает же. Так что вроде правильно тоже.

 Zireael пишет:
Не учтено что слово может быть в самом начале или конце строки.

Не учтено.
 
 Top
Zireael
Отправлено: 03 Мая, 2023 - 21:01:00
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4427
Дата рег-ции: Нояб. 2017  
Репутация: 584




Тут вообще правильнее \s?
потому что пробелов 0 или 1.
Учитывая сложность чтения регулярок, усложнять выражение лишними скобками не стоит.
 
 Top
Kibor
Отправлено: 03 Мая, 2023 - 21:13:55
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8113
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 Zireael пишет:
Тут вообще правильнее \s?

Я не спец по регуляркам.
Знаю только что | это или.
И тут будет пробел или ничто. И работает.
 
 Top
Страниц (3): « 1 2 [3]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by