温馨提示×

c++ string匹配如何实现多模式匹配

c++
小樊
85
2024-09-25 07:39:15
栏目: 编程语言

在 C++ 中,可以使用 regex 库来实现多个模式的字符串匹配。下面是一个简单的例子,展示了如何使用正则表达式进行多模式匹配:

#include <iostream>
#include <string>
#include <regex>

int main() {
    std::string input = "I have 100 books and 20 pens.";
    
    // 创建一个包含多个模式的 regex 对象
    std::regex patterns("([0-9]+)|([a-zA-Z]+)");

    // 使用迭代器遍历所有匹配的结果
    std::sregex_iterator it(input.begin(), input.end(), patterns);
    std::sregex_iterator end;

    // 输出所有匹配的结果
    while (it != end) {
        std::smatch match = *it;
        std::cout << "Match: " << match.str() << std::endl;
        ++it;
    }

    return 0;
}

在这个例子中,我们创建了一个正则表达式对象 patterns,它包含了两个模式:一个用于匹配数字,另一个用于匹配字母。然后,我们使用 std::sregex_iterator 遍历输入字符串中的所有匹配项,并将它们输出到控制台。

这只是一个简单的例子,你可以根据需要修改正则表达式和匹配逻辑来实现更复杂的多模式匹配。

0