C ++ регулярное выражение Получить строки с разделителем

javascript c++ regex task c++14

68 просмотра

1 ответ

я создаю простой чат с boost asio, std thread и regex.

«Протокол» моего чата выглядит так: « name \ 0password \ 0msg \ 0 ». Помогите мне написать регулярное выражение, которое будет анализировать и проверять эту строку.

Мне нужно получить из этой строки: имя, пароль и сообщение

используется имя: регулярное выражение " \ D \ w {1,11} " и пароль: " . {1,12} "

как объединить это регулярное выражение и получить имя, пароль и сообщение из строки

я попробовал это: " \ D \ w {1,11} \ 0. {1,12} \ 0. * \ 0 " но !!! НО!!! это регулярное выражение соответствует всей строке между началом и последним '\ 0'. Как это исправить?

Автор: Ilya Polishchuk Источник Размещён: 08.11.2019 10:54

Ответы (1)


1 плюс

Решение

Вам просто нужно поставить круглые скобки для разделения групп перехвата, а затем экранировать \, так как это специальный символ в регулярном выражении. Так что ваше выражение должно выглядеть так:

(\D\w{1,11})\\0(.{1,12})\\0(.*)\\0

После этого первое совпадение будет содержать «имя», второе - «пароль», а третье - «сообщение».

Автор: G.Margaritis Размещён: 20.08.2016 09:34
Вопросы из категории :
32x32