C++中如何結(jié)合正則表達(dá)式使用strtok_r

c++
小樊
82
2024-08-29 18:32:51
欄目: 編程語言

在C++中,你可以使用std::regex庫來處理正則表達(dá)式,而strtok_r是一個(gè)C風(fēng)格的字符串分割函數(shù)

#include<iostream>
#include<string>
#include<vector>
#include<regex>
#include <cstring>

int main() {
    std::string input = "This is a test string";
    std::regex word_regex("\\w+"); // 匹配單詞
    std::smatch match;

    std::vector<std::string> words;

    while (std::regex_search(input, match, word_regex)) {
        words.push_back(match.str());
        input = match.suffix().str();
    }

    for (const auto& word : words) {
        std::cout<< word<< std::endl;
    }

    return 0;
}

在這個(gè)例子中,我們使用了std::regex庫來匹配單詞。std::regex_search函數(shù)會(huì)在輸入字符串中查找與正則表達(dá)式匹配的部分,并將匹配結(jié)果存儲(chǔ)在std::smatch對(duì)象中。然后,我們將匹配到的單詞添加到一個(gè)std::vector<std::string>容器中,并繼續(xù)在剩余的字符串中查找匹配項(xiàng)。

注意:std::regex庫在某些編譯器(如GCC)中可能需要額外的支持庫。在使用時(shí),請(qǐng)確保已經(jīng)安裝了相應(yīng)的庫。

0