C++中如何利用`<regex>`库来实现字符串分割?
时间: 2024-09-15 14:10:29 浏览: 40
在C++中,你可以使用`<regex>`库中的`std::regex_split()`函数来实现字符串分割。这个函数接收三个参数:要分割的字符串、正则表达式模式作为分隔符以及结果容器,用于存储分割后的子串。下面是一个简单的例子:
```cpp
#include <iostream>
#include <regex>
#include <string>
#include <vector>
// 定义一个函数,利用正则表达式分割字符串
std::vector<std::string> splitString(const std::string& str, const std::regex& pattern) {
std::vector<std::string> result;
std::sregex_token_iterator it(str.begin(), str.end(), pattern, -1); // -1表示匹配所有子串
std::sregex_token_iterator end;
while (it != end) {
result.push_back(*it++);
}
return result;
}
int main() {
std::string input = "Hello;World!This;Is;A;Test";
std::regex delimiter(";|!");
std::vector<std::string> parts = splitString(input, delimiter);
for (const auto& part : parts) {
std::cout << part << std::endl;
}
return 0;
}
```
在这个例子中,`delimiter`正则表达式用于指定分隔符,即";"和"!"。运行此程序将输出每个分割后的子串。
阅读全文