跳到主要内容

简述什么是C++ 中的正则表达式 (Regex)?

参考答案:

正则表达式(Regular Expression,简称Regex)是一种强大的文本处理工具,它可以用来检查一个字符串是否匹配某种特定的模式。在C++中,正则表达式被用于处理字符串,比如查找、替换符合某种模式的子串等。

正则表达式由一系列元字符和普通字符组成,元字符有特殊含义,可以表示一种类型的字符集合、数量的限定等。例如,.可以匹配任何单个字符,*可以匹配前面的元素0次或多次,\d可以匹配任何数字等。

在C++中,标准库 <regex> 提供了正则表达式的支持。你可以使用 std::regex 类来编译一个正则表达式,然后使用 std::regex_matchstd::regex_searchstd::regex_replace 等函数来进行匹配、查找和替换等操作。

例如,以下是一个使用C++正则表达式来查找字符串中所有数字的例子:

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

int main() {
    std::string s = "The price is 100 dollars and 25 cents.";
    std::regex e ("\\d+"); // 匹配一个或多个数字

    // 查找所有匹配项
    auto begin = std::sregex_iterator(s.begin(), s.end(), e);
    auto end = std::sregex_iterator();

    for (std::sregex_iterator i = begin; i != end; ++i)
        std::cout << i->str() << std::endl;

    return 0;
}

在这个例子中,正则表达式 \\d+ 用于匹配一个或多个数字。程序会输出字符串 s 中所有匹配该模式的数字。