170 похожих чатов

Требуется распозновать и классифицировать разных видов данные (бинарные, текстовые ASCII)

на основе шаблонов.
Что лучше всего использовать для этого в Python? Знаю, что есть регулярные выражения, которые вполне нормально работают с двоичными данными, но может быть, есть что-то более узкоспециализированное?

14 ответов

22 просмотра

Регулярки с двоичными данными? Впервые слышу такое.

Victor- Автор вопроса
neumond x
Регулярки с двоичными данными? Впервые слышу такое...

Да, регулярки вполне неплохо работают с байтовыми строками (bytes)

Victor
Да, регулярки вполне неплохо работают с байтовыми ...

>>> re.match('[a-z]', b'0123') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python3.8/re.py", line 191, in match return _compile(pattern, flags).match(string) TypeError: cannot use a string pattern on a bytes-like object

Victor- Автор вопроса
neumond x
>>> re.match('[a-z]', b'0123') Traceback (most rec...

Ты пытаешься применить строковый шаблон для байтовой строки

А в чём шаблоны заданы? Мне кажется с этого надо начинать.

Victor- Автор вопроса
neumond x
А в чём шаблоны заданы? Мне кажется с этого надо н...

Шаблоны предстоит написать. Передо мной стоит выбор: брать обычные регулярные выражения или искать какие-то движки проверки соответствия шаблонов (может быть, более хорошо заточенные под работу с разными форматами) и изучать их

Victor
Шаблоны предстоит написать. Передо мной стоит выбо...

Очень мутный вопрос. Если регулярки подходят, то почему бы не использовать их? Но ведь регулярки могут и не подойти. Да и что там за данные такие, нужно бинари от текста отделить или как-то там классифицировать и бинари и текст?

Victor- Автор вопроса
neumond x
Очень мутный вопрос. Если регулярки подходят, то п...

Принимаю по TCP/IP сообщения от разных китайских железок (GPS-трекеры) с разными протоколами обмена данными. По содержанию сообщения нужно определить протокол, а затем на основе этого выбрать для него соответствующий декодер и декодировать

Victor
Принимаю по TCP/IP сообщения от разных китайских ж...

у протокола нет никакого меджика в начале? Или ты его подставить не можешь?

Victor- Автор вопроса
Nero
у протокола нет никакого меджика в начале? Или ты ...

Протоколов огромный зоопарк, один на другой не похож, структура сообщения сильно отличается) Поэтому решил, что буду писать для каждого протокола шаблон и проверять по нему соответствие сообщения целиком

Victor
Принимаю по TCP/IP сообщения от разных китайских ж...

Не уверен что это легко решаемая задача. Придётся реверсить протоколы и искать различия.

Victor
Протоколов огромный зоопарк, один на другой не пох...

ты получаешь по тцпип сообщения от разных железок, да, но немного не понимаю что мешает например по порту определять, например

Victor- Автор вопроса
Nero
ты получаешь по тцпип сообщения от разных железок,...

Порт нестабилен (он может быть любым). В общем, решил делать так, есть на то причины, на что-либо другое не могу опереться. Если кто-то знает какие-либо движки соответствия шаблонам для Python (pattern matching), поделитесь, пожалуйста

Victor
Порт нестабилен (он может быть любым). В общем, ре...

ну хз, это либо очень сложно, либо вообще невозможно, тегни меня если найдёшь решение

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта