我有一大块文字,比如:
Name=Long John Silver;Profession=cook;Hobby=Piracy
使用Boost::regex库,我尝试获取每个属性的值,因此我有以下正则表达式表示名称:
regex(".*Name=([^;$]*).*")我把它理解为“在Name=之后得到所有东西,直到找到一个;或行尾”。然而,我使用regex_match获得的只是“长”,没有空格。当然,我已经尝试了几个RE组合,但我无法解决它。
有线索吗?干杯。
发布于 2009-10-12 10:45:49
不,在字符类(方括号)中,$没有特殊的含义。它只是与文字'$'匹配。
试试这个正则表达式:
Name=([^\s;]*)字符类[^\s;]匹配除空白字符和分号以外的任何字符。这个名称现在被捕获在第一个匹配组中。
编辑:
如果要匹配整个名称“长约翰·西尔弗”,请使用以下正则表达式:
Name=([^;]*)https://stackoverflow.com/questions/1553755
复制相似问题