How to match a substring within 2 square brackets using RegEx in C++

1 Answer

0 votes
#include <iostream>
#include <string>
#include <vector>
#include <regex>

std::vector<std::string> extractBracketedContent(const std::string& text) {
    std::vector<std::string> result;
    std::regex pattern(R"(\[(.*?)\])");
    
    auto words_begin = std::sregex_iterator(text.begin(), text.end(), pattern);
    auto words_end = std::sregex_iterator();

    for (std::sregex_iterator i = words_begin; i != words_end; ++i) {
        result.push_back((*i)[1].str());
    }

    return result;
}

int main() {
    std::string input = "This is a [sample] string with [multiple] square brackets.";
    std::vector<std::string> extracted = extractBracketedContent(input);

    for (const auto& item : extracted) {
        std::cout << item << std::endl;
    }
}



/*
run:

sample
multiple

*/

 



answered Jul 19, 2025 by avibootz
...