我正在使用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'之间的所有字符串。如何解决这个问题?
答案 0 :(得分:1)
你只需要将括号放在单独的捕获组中,然后转义\,因为它是regex中的一个特殊字符。所以你的表达式应该如下所示:
(\D\w{1,11})\\0(.{1,12})\\0(.*)\\0
执行此操作后,第一个匹配将包含'name',第二个匹配将包含'password',第三个匹配将包含'message'。