Skip to content

正则表达式模块

C++ 的标准库本身并不包含正则表达式,但是自 C++11 开始,有一个正则表达式库 <regex> 可以使用。

以下是一个简单的 C++ 正则表达式示例:

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

int main() {
    std::string s = "This is a sample text with 1234 numbers in it.";
    std::regex e ("\\d+");   // 匹配一个或多个数字

    // 使用 std::sregex_iterator 迭代器查找所有匹配项
    std::sregex_iterator<std::string::iterator> rit (s.begin(), s.end(), e);
    std::sregex_iterator<std::string::iterator> rend;

    while (rit != rend) {
        std::cout << rit->str() << std::endl;   // 输出匹配的数字
        ++rit;
    }

    return 0;
}

在这个例子中,我们定义了一个字符串 s 和一个正则表达式 e,该正则表达式可以匹配一个或多个数字。然后我们使用 std::sregex_iterator 迭代器查找 s 中所有与 e 匹配的子串,并输出它们。