C++ string 正则表达 截取
时间: 2023-10-01 17:10:19 浏览: 119
正则表达式截取字符串的方法技巧
可以使用正则表达式库 `regex` 和字符串库 `string` 来实现字符串截取。
以下是一个示例代码,用于从字符串中提取数字:
```c++
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main() {
string str = "hello 123 world 456";
regex reg("\\d+");
smatch match;
while (regex_search(str, match, reg)) {
cout << match[0] << endl;
str = match.suffix().str();
}
return 0;
}
```
这个程序会输出:
```
123
456
```
在上面的代码中,我们首先定义了一个字符串 `str`,它包含了一些数字。然后我们使用正则表达式 `\\d+` 来匹配数字。该正则表达式表示:`\d` 匹配一个数字字符,`+` 表示匹配一个或多个数字字符。我们使用 `regex_search` 函数来搜索字符串中的数字,并将结果存储在 `match` 中。然后我们输出匹配到的数字字符,最后使用 `match.suffix().str()` 来更新字符串 `str`,以便在下一次搜索中跳过已经匹配的字符。
如果你想从一个字符串中截取一部分字符,可以使用 `substr` 函数。例如,以下代码将从字符串 `str` 的位置 6 开始截取 3 个字符:
```c++
string sub_str = str.substr(6, 3);
```
这个程序会将字符串 `world` 截取出来并赋值给变量 `sub_str`。
阅读全文