c++ - <regex> 库是否正常工作?

标签 c++ regex c++11

<分区>

我有以下简单示例:其中 <regex>库用于在“hello world”中搜索“llo”。

#include <regex>
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
    cout << boolalpha;
    regex rgx("llo");
    cmatch result;

    cout << regex_search("hello world", result, rgx) << endl;
    cout << "Matched: " << result.str() << endl;
    return 0;
}

我用“gcc version 4.7.1”编译它,命令如下:

c++ regex2.cpp -o regex2 -std=c++11

结果是:

false
Matched: 

那么,我应该做错什么?由于它编译,我可以假设 c++11可以在我的电脑上使用,因此图书馆也可以吗?

衷心感谢!

最佳答案

不,std::regex 在 GCC 4.7.1 附带的标准库实现中完全实现。

完全支持 <regex>将在今年晚些时候与 GCC 4.9 一起发布。

看这个:http://gcc.gnu.org/gcc-4.9/changes.html

同时,我推荐 <boost/regex.hpp> 使用类似的语法。

#include <boost/regex.hpp>

#include <iostream>
#include <string>

int main() {
    std::cout << std::boolalpha;
    boost::regex rgx("llo");
    boost::cmatch result;

    std::cout << boost::regex_search("hello world", result, rgx) << std::endl;
    std::cout << "Matched: " << result.str() << std::endl;
}

关于c++ - <regex> 库是否正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22098069/

相关文章:

c++ - PIMPL 无法在 macOS 上编译

mysql - 使用正则表达式仅获取数字

c++ - 在运行时获取类型参数

c++ - googletest参数化的高级使用

c++ - 使用 Stroustrup 示例的 condition_vairable::wait_for() 问题

javascript - 使用 javascript 正则表达式选取 url 的一部分?

c# - 使用 C# Regex 删除包含在 div 标签中的文本

c++ - 分配不同大小的 std::array

c++ - 有没有办法让模板函数自动推断迭代器的底层数据类型?

c++ - 在 C++ 中使用 Windows Composition 引擎的透明窗口