求解正确的正则表达式,问题核心是正则表达式如何获得组的“所有”匹配的内容,而不仅是最后的匹配?
std::string = "('k1'='v1';'k2'='v2';123;'k3'='v3')";
我写的正则表达式是: (^\()([^;]+;)*([^\)]+)(\)$)
我的结果如下:
Full match `('k1'='v1';'k2'='v2';123;'k3'='v3')`
Group 1. `(`
Group 2. `123;`
Group 3. `'k3'='v3'`
Group 4. `)`
我希望的结果如下。
Full match `('k1'='v1';'k2'='v2';123;'k3'='v3')`
Group 1. `(`
Group 2. 'k1'='v1';
Group 3. 'k2'='v2';
Group 4. `123;`
Group 5. `'k3'='v3'`
Group 6. `)`
请帮我看一下?