C++ 使用正则表达式解析json字符串
时间: 2023-10-12 08:19:40 浏览: 261
C++ 标准库提供了一个正则表达式库 `std::regex`,可以用它来匹配和解析 JSON 字符串。下面是一个简单的例子:
```c++
#include <iostream>
#include <regex>
#include <string>
using namespace std;
int main() {
// JSON 字符串
string jsonStr = "{\"name\":\"Tom\",\"age\":18,\"gender\":\"male\"}";
// 匹配 JSON 键值对的正则表达式
regex reg("\"(\\w+)\":\"([^\"]+)\"");
// 迭代器来搜索匹配项
sregex_iterator it(jsonStr.begin(), jsonStr.end(), reg);
sregex_iterator end;
// 输出匹配到的键值对
while (it != end) {
cout << it->str(1) << " : " << it->str(2) << endl;
++it;
}
return 0;
}
```
输出结果:
```
name : Tom
age : 18
gender : male
```
这个例子展示了如何用正则表达式来匹配 JSON 字符串中的键值对。在这个例子中,我们使用了一个正则表达式 `\"(\\w+)\":\"([^\"]+)\"`,它表示匹配一个键值对,键是一个由字母和数字组成的单词,值是一个不包含双引号的字符串。然后我们用 `sregex_iterator` 来搜索匹配项,迭代器会在 JSON 字符串中找到所有匹配的键值对,并输出它们的键和值。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)