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. `)`
請幫我看一下?
uj5u.com熱心網友回復:
把你需要的資料也用分組捕獲一下uj5u.com熱心網友回復:
提醒:在字串掃描提取替換問題域中,正則運算式不是萬能的;而有限狀態自動機是萬能的。參考《編譯原理》中的詞法分析和有限狀態自動機。
uj5u.com熱心網友回復:
[^;\)\("]+ 使用這個正則.會得到結果 其5組, 手動去掉第一組即可. 因為第一組必有.
std::string =
'k1'='v1'
'k2'='v2'
123
'k3'='v3'
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/89708.html
標籤:HTML/XML
上一篇:關于cvvimage的問題
