How to find words separated by space, comma, period, tab, and newline using regex in C++

2 Answers

0 votes
#include <iostream>
#include <cstring>
#include <regex>

int main() {
    // find words separated by space, comma, period, tab and newline
    const char *pattern = R"([^ ,.\t\n]+)"; 
    std::regex rgx(pattern); 

    const char *s = "Colleges universities, that. teach C \tand \nC++";
    
    auto iter = std::cregex_iterator(s, s + strlen(s), rgx);

    auto end = std::cregex_iterator();

    for (; iter != end; iter++) {
        std::string match_str = iter->str();
        std::cout << match_str << '\n';
    }
}


/*
run:

Colleges
universities
that
teach
C
and
C++

*/

 



answered Dec 30, 2024 by avibootz
0 votes
#include <iostream>
#include <regex>

int get_string_size(const char *s) {
    int size = 0;
    const char *p = s;
    
    while(*p++) size++; 
    
    return size;
}

int main() {
    // find words separated by space, comma, period, tab and newline
    const char *pattern = R"([^ ,.\t\n]+)"; 
    std::regex rgx(pattern); 

    const char *s = "Colleges universities, that. teach C \tand \nC++";

    auto iter = std::cregex_iterator(s, s + get_string_size(s), rgx);

    auto end = std::cregex_iterator();

    for (; iter != end; iter++) {
        std::string match_str = iter->str();
        std::cout << match_str << '\n';
    }
}


/*
run:

Colleges
universities
that
teach
C
and
C++

*/

 



answered Dec 30, 2024 by avibootz

Related questions

...