![]() |
Пред. тема | След. тема | ||
Форум Программирование под UNIX (Perl) | |||
---|---|---|---|
Изначальное сообщение | [ Отслеживать ] |
"Возможно ли на regexp perl удалить определенное число байтов?" | +/– | ![]() |
Сообщение от zhukovia![]() | ||
Есть строка текста в которой в произвольном месте может содержаться "мусорный" текст который нужно вычистить. У "мусора" следующие параметры он оканчивается на \x00\x00 (в hex представлении), а в начале \xE3\x33 но при этом он не всегда находится в самом начале иногда перед ним бывает 1 или 2 символа. При этом длинна "мусорной" строки всегда 70 байт. Встречается "мусор" произвольное число раз. | ||
Ответить | Правка | Cообщить модератору |
Оглавление |
Сообщения | [Сортировка по ответам | RSS] |
1.
Сообщение от zhukovia![]() | +/– | ![]() |
Забыл добавить подобная последовательность (\x00\x00) может быть не один раз внутри "мусора". И начинается не строго с \xE3\x33. В начале бывает еще 1-2 символа произвольных, но длинна всегда 70 байт. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #2 |
2. Сообщение от Pahanivo (ok), 05-Фев-20, 14:10 | +1 +/– | ![]() |
> Забыл добавить подобная последовательность (\x00\x00) может быть не один раз внутри "мусора". | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #1 Ответы: #6 |
3. Сообщение от Аноним (3), 06-Фев-20, 00:14 | +/– | ![]() |
> Есть строка текста в которой в произвольном месте может содержаться "мусорный" текст | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #4, #7 |
4. Сообщение от ACCA (ok), 06-Фев-20, 01:11 | +/– | ![]() |
>> Е> Что-то такое, если я вас верно понял. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #3 Ответы: #5 |
5. Сообщение от Аноним (3), 06-Фев-20, 03:31 | +/– | ![]() |
> Так оно не проверит на \xE3\x33. Нужно тщательнее: | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #4 Ответы: #8 |
6.
Сообщение от zhukovia![]() | +/– | ![]() |
>> Забыл добавить подобная последовательность (\x00\x00) может быть не один раз внутри "мусора". | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #2 Ответы: #10 |
7.
Сообщение от zhukovia![]() | +/– | ![]() |
> $clean = do{ use bytes ; $str =~ s/.{68}\x00{2}(?!=\x00)//g ; $str } | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #3 Ответы: #9, #12 |
8. Сообщение от Pahanivo (ok), 06-Фев-20, 12:20 | +/– | ![]() |
> Это не сложное выражение. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #5 Ответы: #11 |
9. Сообщение от Pahanivo (ok), 06-Фев-20, 12:26 | +/– | ![]() |
> (?!=\x00) как я понимаю эта конструкция будет искать \x00{2} после которых нет | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #7 |
10. Сообщение от Pahanivo (ok), 06-Фев-20, 12:27 | +/– | ![]() |
> Согласен что нужно четко описывать, но проблема в том что эти 1-2 | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #6 |
11. Сообщение от Аноним (3), 07-Фев-20, 00:47 | +/– | ![]() |
>> Это не сложное выражение. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #8 Ответы: #14 |
12. Сообщение от Аноним (3), 07-Фев-20, 00:50 | +/– | ![]() |
>> $clean = do{ use bytes ; $str =~ s/.{68}\x00{2}(?!=\x00)//g ; $str } | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #7 Ответы: #13 |
13. Сообщение от Pahanivo (ok), 07-Фев-20, 14:01 | +/– | ![]() |
> Конструкция смотрит 2 нулевых байта, после которых нет нулевых байтов, после чего | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #12 |
14. Сообщение от Pahanivo (ok), 07-Фев-20, 14:02 | +/– | ![]() |
> Думал сначала написать ?=[^\x00], а потом исправил и знак равно забыл убрать. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #11 Ответы: #15 |
15. Сообщение от Аноним (3), 07-Фев-20, 14:37 | +/– | ![]() |
Примерно же понятно. Есть какой-то бинарный протокол, по которому чанки данных идут с каким-то заголовком. Так-то конечно надо изучать протокол и делать unpack по формату. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #14 |
16. Сообщение от U.N.Owen (?), 08-Фев-20, 14:05 | –1 +/– | ![]() |
> Есть строка текста в которой в произвольном месте может содержаться "мусорный" текст | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #17 |
17. Сообщение от ACCA (ok), 10-Фев-20, 21:06 | +/– | ![]() |
>> (в hex представлении), а в начале \xE3\x33 но при этом он | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #16 Ответы: #18 |
18. Сообщение от U.N.Owen (?), 28-Мрт-20, 19:45 | +/– | ![]() |
> Ага. Разжуй две ситуации, в которых твой regex не сработал: | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #17 |
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |