C++ 使用正则表达式 ssfds=fff(),bfdsfsfff(fds)/100,fff()分割这个字符串 需要分割为fff() fff(fds)/100 fff()这三个字符串
时间: 2024-10-18 11:14:23 浏览: 15
poll机制分析.zip_C/C++__C/C++_
在C++中,你可以使用标准库`std::regex`来处理正则表达式,但是请注意C++标准库并没有内置函数可以直接按照你的需求精确地分割字符串。你需要编写自定义的代码,首先定义一个正则表达式匹配模式,然后对输入的字符串进行多次匹配。
这是一个简单的例子:
```cpp
#include <iostream>
#include <string>
#include <regex>
std::vector<std::string> splitString(const std::string& input, const std::string& pattern) {
std::smatch matches;
std::regex regex(pattern);
std::vector<std::string> result;
size_t pos = 0;
while ((pos = regex.find(input, pos)) != std::string::npos) {
result.push_back(input.substr(0, pos));
result.push_back(regex.extract(input, pos));
pos += regex.match_length();
}
if (input.size()) {
result.push_back(input.substr(pos)); // 如果最后还有未匹配的部分
}
return result;
}
int main() {
std::string ssfds = "ssfds=fff(),bfdsfsfff(fds)/100,fff()";
std::string pattern = R"(fff\(\)\s*|fff\(.*?\)/100)";
auto result = splitString(ssfds, pattern);
for (const auto& part : result) {
std::cout << part << std::endl;
}
阅读全文