繁体   English   中英

C ++ TR1正则表达式不可用

[英]C++ TR1 Regular Expressions Not Available

我正在尝试将'TR1'正则表达式扩展用于某些C ++字符串解析。 我已经读过这个需要<regex>头和命名空间std :: tr1

我可以使用<regex>标头进行编译(虽然它强制我使用标志, -std=c++0x-std=gnu++0x

但是,当我尝试在程序中使用std::tr1命名空间时,编译失败并显示tr1“不是命名空间名称”的消息。 我不能做的事情,

std::tr1::regex rx("mypattern");

我已经读过自gcc 4.3.0以来一直支持TR1正则表达式。 我通过gcc 4.4.5使用g ++。

我错过了什么吗?

g ++ 4.7还没有实现正则表达式。

但尽管如此,在C ++ 11中, regex已从名称空间std::tr1移至std 所以,你应该写std::regex而不是std::tr1::regex std::regex

std::regex rx("mypattern");

我不知道4.7之前的哪些g ++版本也适用。 这个ideone示例使用g ++ 4.7进行编译。 但是,请记住,此编译器版本中未实现正则表达式实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM