{"name": "Tom", "age": 18} C++正则表达式取18
时间: 2023-09-01 19:07:14 浏览: 206
可以使用正则表达式 `\d+` 来匹配整数,代码示例:
```cpp
#include <iostream>
#include <regex>
#include <string>
int main() {
std::string s = R"({"name": "Tom", "age": 18})";
std::regex re("\\d+");
std::smatch match;
if (std::regex_search(s, match, re)) {
std::cout << match[0] << std::endl;
}
return 0;
}
```
输出结果为:
```
18
```
相关问题
{"name": "Tom", "age": 18} C++正则表达式取age值
可以使用C++标准库中的正则表达式模块来取出age的值。以下是一个示例代码:
```c++
#include <iostream>
#include <regex>
int main() {
std::string str = "{\"name\": \"Tom\", \"age\": 18}";
std::regex reg("\"age\":\\s*(\\d+)");
std::smatch match;
if (std::regex_search(str, match, reg)) {
std::cout << "Age: " << match[1] << std::endl;
} else {
std::cout << "Age not found" << std::endl;
}
return 0;
}
```
输出:
```
Age: 18
```
正则表达式解释:
- `\"age\":` 匹配 "\"age\":",注意需要转义双引号。
- `\\s*` 匹配零个或多个空白字符。
- `(\\d+)` 匹配一个或多个数字,并将其作为一个捕获组。
`std::regex_search()` 函数在字符串 `str` 中查找匹配正则表达式 `reg` 的子串,并将匹配的结果存储在 `match` 对象中。`match[1]` 表示第一个捕获组的值,即 age 的值。
{"name": "Tom", "age": 18} C++正则表达式取age和name值
可以使用 C++ 的正则表达式库 `regex` 来实现,以下是示例代码:
```c++
#include <iostream>
#include <regex>
int main() {
std::string json_str = R"({"name": "Tom", "age": 18})";
std::regex age_regex(R"("age":\s*(\d+))");
std::regex name_regex(R"("name":\s*"(\w+)")");
std::smatch match;
if (std::regex_search(json_str, match, age_regex)) {
int age = std::stoi(match[1]);
std::cout << "age: " << age << std::endl;
}
if (std::regex_search(json_str, match, name_regex)) {
std::string name = match[1];
std::cout << "name: " << name << std::endl;
}
return 0;
}
```
输出结果为:
```
age: 18
name: Tom
```
阅读全文