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

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

51. Zireael - 26 Сентября, 2019 - 17:36:37 - перейти к сообщению
 Цитата:
как из строчки удалить все, кроме точного вхождения слова

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

regexreplace(1, #text, text, ".*?(фокус).*", "$1");
messagebox(text);
52. ivantu - 27 Сентября, 2019 - 00:23:51 - перейти к сообщению
спасибо
53. ivantu - 27 Сентября, 2019 - 02:38:22 - перейти к сообщению
 Zireael пишет:
"$1"

Хотел уточнить для саморазвития, что означает этот флаг ?
54. Zireael - 27 Сентября, 2019 - 02:52:05 - перейти к сообщению
 Цитата:
"$1"
Хотел уточнить для саморазвития, что означает этот флаг ?

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

messagebox(text);
regexreplace(1, #text, text, "(Клоун) (показывает) (фокус)", "$3 $1 $2");
messagebox(text);
55. ivantu - 27 Сентября, 2019 - 03:15:50 - перейти к сообщению
Благодарю,
 Zireael пишет:
string text="Клоун показывает фокус";

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


А как перечислить несколько слов для поиска?
56. Zireael - 27 Сентября, 2019 - 03:28:40 - перейти к сообщению
 Цитата:
А как перечислить несколько слов для поиска?

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

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

text="Шили форму";
regexreplace(1, #text, text, ".*?(фокус|форму).*", "$1");
messagebox(text);
57. ivantu - 28 Сентября, 2019 - 07:35:56 - перейти к сообщению
 Zireael пишет:
 Цитата:
А как перечислить несколько слов для поиска?

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

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

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


Подскажите пожалуйста, если перечислений много, кибор выдал ошибку о длине строки, я разбил на две переменных и сложил их str+str2 результат уже не точный выдает
58. Zireael - 28 Сентября, 2019 - 07:42:14 - перейти к сообщению
 Цитата:
результат уже не точный выдает

Пример с ошибкой, тогда уже что-то советовать.
59. ivantu - 28 Сентября, 2019 - 12:21:28 - перейти к сообщению
вот несколько вариантов:

Спойлер (Отобразить)
60. Zireael - 28 Сентября, 2019 - 12:28:10 - перейти к сообщению
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);

Powered by ExBB FM 1.0 Final