c++ - 使用 C++ 正则表达式库中的 regex_search

标签 c++ regex c++11

regex_search 函数未按预期运行。

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

using namespace std;

int main()
{
    string str = "Hello world";
    const regex rx("Hello");
    cout << regex_search(str.begin(), str.end(), rx) << endl;
    return 0;
}

输出是

0

这是怎么回事?

最佳答案

正如问题评论中所指出的,C++ 标准库的较旧实现尚不支持 C++11 中的所有功能。当然,libc++是一个异常(exception),因为它最初是专门为 C++11 构建的。

根据 this bug report支持<regex>在 libstdc++ 中仅针对 GCC 4.9 版实现。您可以在 libstdc++ status page 上查看当前状态.

可以确认,您的示例适用于 GCC 4.9,但在使用 GCC 4.8 时仍然失败。

关于c++ - 使用 C++ 正则表达式库中的 regex_search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12279869/

相关文章:

c++根据数据类型将输入文件中的数据读入3个并行数组

c++ - 在函数内声明 const 而不是变量有什么好处吗?

c++ - 在 C/C++ 中声明这些类型的表的简洁方法?

c++ - 如何将时间返回为 DD :HH:MM:SS?

c++ - C++11 标准中的哪一部分规定了原始数据类型大小之间的相对顺序?

regex - 正则表达式优化工具?

asp.net - 是否可以在正则表达式中执行加法?

regex - 删除所有制表符、空白/换行、空行、多个连续空格(单个空格字符除外)

c++ - 了解模板的声明、定义和特化

c++ - 如何将 constexpr 函数的参数标记为未使用?