@EnotShow

Как сделать regex для байтовых строк python?

Я пытаюсь сделать regex для байтовой строки. Пример кода, для понимания контекста:
def client():
    image_data = b''
    data_received = []
    s = socket.socket()
    s.connect(('localhost', 8888))
    while True:
        s.sendall(b"next")
        data = s.recv(2048)
        if data:
            data_received.append(data)
        else:
            s.close()
            break
    print(f'receive {len(data_received)}')

    sorted_data = {}
    for i in range(len(data_received)):
        index = i.to_bytes(1, byteorder="big")
        print(i)
        for j in data_received:
            if re.match(f'^\{index}|^{index}',  j):  #regex here !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                sorted_data[i] = j.replace(index, b'', 1)
                print(sorted_data)
                print('-\n')

В j хранится байтовая строка.
Но я получаю ошибку:
TypeError: cannot use a string pattern on a bytes-like object

Я находил пример работы с байтстроками тут: https://stackoverflow.com/questions/44457455/pytho...
Почему это не работает для меня?
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ответы на вопрос 1
@FOUREX
Ты не можешь найти строковый паттерн в байтах, просто переведи то что ты ищешь в байты.
to_search = f'^\{index}|^{index}'
if re.match(bytes(to_search),  j):

Попробуй
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы