The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Perl)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Возможно ли на regexp perl удалить определенное число байтов?, zhukovia (ok), 05-Фев-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


1. "Возможно ли на regexp perl удалить определенное число байтов?"  +/
Сообщение от zhukoviaemail (ok), 05-Фев-20, 13:41 
Забыл добавить подобная последовательность (\x00\x00) может быть не один раз внутри "мусора". И начинается не строго с \xE3\x33. В начале бывает еще 1-2 символа произвольных, но длинна всегда 70 байт.

Ответить | Правка | Наверх | Cообщить модератору

2. "Возможно ли на regexp perl удалить определенное число байтов?"  +1 +/
Сообщение от Pahanivo (ok), 05-Фев-20, 14:10 
> Забыл добавить подобная последовательность (\x00\x00) может быть не один раз внутри "мусора".
> И начинается не строго с \xE3\x33. В начале бывает еще 1-2
> символа произвольных, но длинна всегда 70 байт.

На перле это делается как два пальца об асфальт, остается только понять что такое "бывает 1-2 символа" и как эти два символа отличить от остальной части строки.
Регексы требуют четкости, а не размытых формулировок.

Ответить | Правка | Наверх | Cообщить модератору

6. "Возможно ли на regexp perl удалить определенное число байтов?"  +/
Сообщение от zhukoviaemail (ok), 06-Фев-20, 07:23 
>> Забыл добавить подобная последовательность (\x00\x00) может быть не один раз внутри "мусора".
>> И начинается не строго с \xE3\x33. В начале бывает еще 1-2
>> символа произвольных, но длинна всегда 70 байт.
> На перле это делается как два пальца об асфальт, остается только понять
> что такое "бывает 1-2 символа" и как эти два символа отличить
> от остальной части строки.
> Регексы требуют четкости, а не размытых формулировок.

Согласен что нужно четко описывать, но проблема в том что эти 1-2 символа никак не отличить от нормальной строки поэтому я пошел другим путем. Сначала перевернул строку, а потом искал \x00\x00 и от них уже искал 70 байт и вырезал, потом строку обратно переворачивал.
$row = reverse($row);
$row=~s/\x00\x00.{68}//g;
$row = reverse($row);
Возможно перевороты туда сюда и не оптимальны но это работает.

Ответить | Правка | Наверх | Cообщить модератору

10. "Возможно ли на regexp perl удалить определенное число байтов?"  +/
Сообщение от Pahanivo (ok), 06-Фев-20, 12:27 
> Согласен что нужно четко описывать, но проблема в том что эти 1-2
> символа никак не отличить от нормальной строки поэтому я пошел другим
> путем. Сначала перевернул строку, а потом искал \x00\x00 и от них
> уже искал 70 байт и вырезал, потом строку обратно переворачивал.
> $row = reverse($row);
> $row=~s/\x00\x00.{68}//g;
> $row = reverse($row);
> Возможно перевороты туда сюда и не оптимальны но это работает.

Это сферическое "черезжопу" в вакууме.
Внизу есть решение нарезки по 70.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру