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

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

 Страниц (25): В начало « 2 3 4 5 [6] 7 8 9 10 » В конец    

> Описание: Поиск и замена текста по шаблонам регулярных выражений
Zireael
Отправлено: 27 Сентября, 2019 - 01:36:37
Post Id



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


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




 Цитата:
как из строчки удалить все, кроме точного вхождения слова

CODE:
string text="Клоун показывает фокус";

regexreplace(1, #text, text, ".*?(фокус).*", "$1");
messagebox(text);
 
 Top
ivantu
Отправлено: 27 Сентября, 2019 - 08:23:51
Post Id



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


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




спасибо
 
 Top
ivantu
Отправлено: 27 Сентября, 2019 - 10:38:22
Post Id



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


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




 Zireael пишет:
"$1"

Хотел уточнить для саморазвития, что означает этот флаг ?
 
 Top
Zireael
Отправлено: 27 Сентября, 2019 - 10:52:05
Post Id



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


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




 Цитата:
"$1"
Хотел уточнить для саморазвития, что означает этот флаг ?

Это ссылка на первую подгруппу, т. е. выражение в первых скобках, в данном случаем (фокус). Так должно быть понятнее:
CODE:
string text="Клоун показывает фокус";

messagebox(text);
regexreplace(1, #text, text, "(Клоун) (показывает) (фокус)", "$3 $1 $2");
messagebox(text);
 
 Top
ivantu
Отправлено: 27 Сентября, 2019 - 11:15:50
Post Id



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


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




Благодарю,
 Zireael пишет:
string text="Клоун показывает фокус";

regexreplace(1, #text, text, ".*?(фокус).*", "$1"Подмигивание;
messagebox(text);


А как перечислить несколько слов для поиска?
 
 Top
Zireael
Отправлено: 27 Сентября, 2019 - 11:28:40
Post Id



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


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




 Цитата:
А как перечислить несколько слов для поиска?

CODE:
string text="Клоун показывает фокус";

regexreplace(1, #text, text, ".*?(фокус|форму).*", "$1");
messagebox(text);

text="Шили форму";
regexreplace(1, #text, text, ".*?(фокус|форму).*", "$1");
messagebox(text);
 
 Top
ivantu
Отправлено: 28 Сентября, 2019 - 15:35:56
Post Id



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


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




 Zireael пишет:
 Цитата:
А как перечислить несколько слов для поиска?

CODE:
string text="Клоун показывает фокус";

regexreplace(1, #text, text, ".*?(фокус|форму).*", "$1");
messagebox(text);

text="Шили форму";
regexreplace(1, #text, text, ".*?(фокус|форму).*", "$1");
messagebox(text);


Подскажите пожалуйста, если перечислений много, кибор выдал ошибку о длине строки, я разбил на две переменных и сложил их str+str2 результат уже не точный выдает
 
 Top
Zireael
Отправлено: 28 Сентября, 2019 - 15:42:14
Post Id



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


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




 Цитата:
результат уже не точный выдает

Пример с ошибкой, тогда уже что-то советовать.
 
 Top
ivantu
Отправлено: 28 Сентября, 2019 - 20:21:28
Post Id



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


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




вот несколько вариантов:

Спойлер (Отобразить)
 
 Top
Zireael
Отправлено: 28 Сентября, 2019 - 20:28:10
Post Id



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


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




CODE:
string name1 ="мощь|страж|прыть|клинок|гнев|фокус|сила|натиск|шок|вампир|ярость|месть|";
string name2 ="воля|броня|ответ|урон|боевойдух|решимость|усиление|точность|терпение";

string text="Клоун показывает "+formatic(34)+"фокус"+formatic(34)+" (25)";
regexreplace(1, #text, text, ".*?(фокус).*", "$1");
messagebox("Вариант 1 = "+text);


text="Клоун показывает фокус (25)";
regexreplace(1, #text, text, ".*?("+name1+name2+").*", "$1"); // Если использовать сложение строк не находит
messagebox("Вариант 2 = "+text);
 
 Top
Страниц (25): В начало « 2 3 4 5 [6] 7 8 9 10 » В конец
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


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




Powered by