#include <iostream>
#include <string>
#include <vector>
#include <regex>
std::vector<std::string> extract_substrings(const std::string& text) {
// Regular expression pattern to find substrings between single quotation marks
std::regex pattern("'(.*?)'");
std::sregex_iterator it(text.begin(), text.end(), pattern);
std::sregex_iterator end;
std::vector<std::string> substrings;
while (it != end) {
substrings.push_back(it->str(1)); // Capture group 1
++it;
}
if (substrings.empty()) {
return {};
}
return substrings;
}
int main() {
std::string s = "C++ 'cpp' is a 'general-purpose' programming language '.h' 'hpp'";
std::vector<std::string> substrings = extract_substrings(s);
for (const auto& str : substrings) {
std::cout << str << std::endl;
}
}
/*
run:
cpp
general-purpose
.h
hpp
*/