【发布时间】:2013-06-06 12:54:31
【问题描述】:
如何使用新的 C++ 11 正则表达式库从文档中提取 field = value 对?
文档示例(将其视为 std::string):
Caption = "calc.exe";命令行 = "\"C:\Windows\system32\calc.exe\" "; CreationClassName = "Win32_Process";创建日期 = "20130606162432.173628+240"; CSCreationClassName = "Win32_ComputerSystem" 句柄 = "13484"; HandleCount = 93;
作为输出,我需要获取地图:
{"Caption", "calc.exe"}
{"CommandLine", "\"C:\\Windows\\system32\\calc.exe\" "}
{"CreationClassName", "Win32_Process"}
{"CreationDate", "20130606162432.173628+240"}
{"CSCreationClassName", "Win32_ComputerSystem"}
{"Handle", "13484"}
{"HandleCount", "93"}
我想要的代码可能是这样的:
【问题讨论】:
-
你不能用分号标记,然后用空格标记吗?
-
@VoronoiPotato 你能提供一些示例代码吗?
-
出于好奇,您使用的是哪个编译器? AFAIKnew,
<regex>在 gcc 中被破坏 -
对不起,我使用 Visual Studio 2012 Express
-
"quoted strings"可以包含;吗? (示例中未知)可以"quoted strings have \" escaped quotes"吗? (是的)在您的示例中,Handle之前缺少的;是故意丢失还是 tpyo?这些strings 是机器生成的,还是人工输入的?格式有多严格?出现错误需要做什么?