Kibor |
Отправлено: 03 Июня, 2021 - 18:26:41
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
cuttext вырезает часть текста с строки.
Без регулярного выражения.
Данный пример вырежет
Цитата: 12345
CODE:string s=cuttext( "qwert12345asdfg","rt", "as");
messagebox (s);
Первый параметр - строка с которой вырезать надо
Второй - часть текста после которого идет вырезаемый текст. Есть пустая строка, с начала.
Третий - часть текста перед которым идет вырезаемый текст. Если пустая, до конца.
Второй параметр ищется первый сначала.
Второй первый с конца.
=====================
Второй вариант использования cuttext
Данный пример вырежет
Цитата: 234
CODE:string s=cuttext( "qwert12345asdfg","rt", 1, "as", -1);
messagebox (s);
Первый параметр - строка с которой вырезать надо
Второй - часть текста после которого идет вырезаемый текст. Есть пустая строка, с начала.
Третий - смещение начала вырезаемого текста на количество символов.
Четвертый - часть текста перед которым идет вырезаемый текст. Если пустая, до конца.
Пятый - смещение окончания вырезаемого текста на количество символов.
=====================
Так же есть возможность первым, не обязательным параметром указать правила вырезания текста.
0 - Будет вырезан текст начиная от первого нахождения сверху ОТ ЧЕГО, кончая первым нахождением снизу ДО ЧЕГО
Больше 0 - Будет вырезан Указанный Номер Фрагмента начиная от нахождения сверху ОТ ЧЕГО, кончая нахождением сверху ДО ЧЕГО
Меньше 0 - Будет вырезан Указанный Номер Фрагмента начиная от нахождения снизу ОТ ЧЕГО, кончая нахождением снизу ДО ЧЕГО
Пояснение
0 - Вырежет максимальный текст ОТ ДО
2 - Вырежет Второй фрагмент ОТ ДО, начиная сверху
-2 Вырежет Второй фрагмент ОТ ДО, начиная снизу
CODE:string
T="В этом тексте вырежем +++111-- и еще +++222-- также +++333-- и напоследок +++444-- и еще +++555-- не забудем";
string s;
messagebox (T);
s=cuttext(T, "+++", "--");// 111-- и еще +++222-- также +++333-- и напоследок +++444-- и еще +++555
messagebox (s);
s=cuttext(0, T, "+++", "--");// 111-- и еще +++222-- также +++333-- и напоследок +++444-- и еще +++555
messagebox (s);
s=cuttext(1, T, "+++", "--");// 111
messagebox (s);
s=cuttext(2, T, "+++", "--");// 222
messagebox (s);
s=cuttext(-1, T, "+++", "--");// 555
messagebox (s);
s=cuttext(-2, T, "+++", -2, "--", 2);// ++444--
messagebox (s);
Если в строке только одно вхождение:
То есть к примеру нам надо вырезать участок кода относящийся к фрагменту:
в строке
CODE:class="line-grid-header__name champ-header__name">Баскетбол. Австралия. NBL. Мужчины.</h2></div><button _ngcontent-mobile-ng-cli-c107="" class="champ-header__button">
И оно там одно, надо указать смещение назад минимум на 1 символ больше чем первая искомая подстрока.
Цитата: string T="class=^"line-grid-header__name champ-header__name^">Баскетбол. Австралия. NBL. Мужчины.</h2></div><button _ngcontent-mobile-ng-cli-c107=^"^" class=^"champ-header__button^">";
messagebox (T);
string s=cuttext(0, T, "__name^">Баскетбол", -18, "__name^">Баскетбол", 50);
messagebox (s); |
|
|
Zireael |
Отправлено: 28 Октября, 2021 - 01:43:44
|
Эксперт
Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: как из строки " ' лассо ' лопата ' верстак ' автомобиль ' пин-ап " вынуть слова?
CODE:string Text = " ^' лассо ^' лопата ^' верстак ^' автомобиль ^' пин-ап ";
messagebox(Text);
string result[999];
int count = regexsearch(sizearray(result), #result[0], Text, "[a-zA-Zа-яА-ЯёЁ\-]+");
messagebox("Всего найдено слов: "+format(count));
for(int i=0; i<count; i++)
{
messagebox(result[i]);
} |
|
|
Kibor |
Отправлено: 12 Января, 2022 - 09:09:55
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Второй вариант использования cuttext
Данный пример вырежет
Цитата: 234
CODE:string s=cuttext( "qwert12345asdfg","rt", 1, "as", -1);
messagebox (s);
Первый параметр - строка с которой вырезать надо
Второй - часть текста после которого идет вырезаемый текст. Есть пустая строка, с начала.
Третий - смещение начала вырезаемого текста на количество символов.
Четвертый - часть текста перед которым идет вырезаемый текст. Если пустая, до конца.
Пятый - смещение окончания вырезаемого текста на количество символов. |
|
|
Kibor |
Отправлено: 18 Октября, 2023 - 11:07:17
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Доработал cuttext
Появилась возможность первым, не обязательным параметром указать правила вырезания текста.
По умолчанию он 0
0 - Будет вырезан текст начиная от первого нахождения сверху ОТ ЧЕГО, кончая первым нахождением снизу ДО ЧЕГО
Больше 0 - Будет вырезан Указанный Номер Фрагмента начиная от нахождения сверху ОТ ЧЕГО, кончая нахождением сверху ДО ЧЕГО
Меньше 0 - Будет вырезан Указанный Номер Фрагмента начиная от нахождения снизу ОТ ЧЕГО, кончая нахождением снизу ДО ЧЕГО
Пояснение
0 - Вырежет максимальный текст ОТ ДО
2 - Вырежет Второй фрагмент ОТ ДО, начиная сверху
-2 Вырежет Второй фрагмент ОТ ДО, начиная снизу
CODE:string
T="В этом тексте вырежем +++111-- и еще +++222-- также +++333-- и напоследок +++444-- и еще +++555-- не забудем";
string s;
messagebox (T);
s=cuttext(T, "+++", "--");// 111-- и еще +++222-- также +++333-- и напоследок +++444-- и еще +++555
messagebox (s);
s=cuttext(0, T, "+++", "--");// 111-- и еще +++222-- также +++333-- и напоследок +++444-- и еще +++555
messagebox (s);
s=cuttext(1, T, "+++", "--");// 111
messagebox (s);
s=cuttext(2, T, "+++", "--");// 222
messagebox (s);
s=cuttext(-1, T, "+++", "--");// 555
messagebox (s);
s=cuttext(-2, T, "+++", -2, "--", 2);// ++444--
messagebox (s);
Если в строке только одно вхождение:
То есть к примеру нам надо вырезать участок кода относящийся к фрагменту:
в строке
CODE:class="line-grid-header__name champ-header__name">Баскетбол. Австралия. NBL. Мужчины.</h2></div><button _ngcontent-mobile-ng-cli-c107="" class="champ-header__button">
И оно там одно, надо указать смещение назад минимум на 1 символ больше чем первая искомая подстрока.
Цитата: string T="class=^"line-grid-header__name champ-header__name^">Баскетбол. Австралия. NBL. Мужчины.</h2></div><button _ngcontent-mobile-ng-cli-c107=^"^" class=^"champ-header__button^">";
messagebox (T);
string s=cuttext(0, T, "__name^">Баскетбол", -18, "__name^">Баскетбол", 50);
messagebox (s); |
|
|
|