C ++正则表达式。获取带分隔符的字符串

时间:2016-08-20 05:04:52

标签: javascript c++ regex task c++14

我正在使用boost asio,std thread和regex创建一个简单的聊天。

我的聊天"协议"看起来像这样" 名称\ 0password \ 0msg \ 0 "请帮我写一个正则表达式,它将解析并验证这个字符串。

我需要从这个字符串中获取:name,password和msg

名称用于正则表达式" \ D \ w {1,11} "和密码:" 。{1,12} "

如何结合这个正则表达式并从字符串

获取名称,传递和消息

我试过这个:" \ D \ w {1,11} \ 0。{1,12} \ 0。* \ 0 "但!!!但!!!此正则表达式匹配begin和last' \ 0'之间的所有字符串。如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你只需要将括号放在单独的捕获组中,然后转义\,因为它是regex中的一个特殊字符。所以你的表达式应该如下所示:

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

执行此操作后,第一个匹配将包含'name',第二个匹配将包含'password',第三个匹配将包含'message'。