C 11正则分组

C++11 Regex Grouping

本文关键字:      更新时间:2023-10-16

可能的重复:
与C 11 Regex

无匹配

我正在读这本涵盖C 11的书,然后到了谈论正则表达式的章节。一切对我来说都很好,直到我需要在需要回到小组的情况下进行分组并提及 1的一部分。我的代码完美地编译:

#include <iostream>
#include <regex>
#include <string>
int main()
{
     try
     {

           regex r1("<(.*)>.*</\1>");
           bool found = regex_match(string("<tag>value</tag>"),r1);
           cout << "Does the string match:        ";
           cout << boolalpha << found << 'n';
     }catch( exception e)
     {
        cout << e.what() << 'n';
     }
     return 0;
}

然而,发生的事情是我得到一个分段故障(核心倾倒)消息。这个小片段直接来自书籍,因此我非常怀疑这是错误的。注意:我确实使用-std = C 0x编译。注意:我正在使用code :: Ubuntu下的块12.04

任何帮助将不胜感激!谢谢!

libstdc 的正则实现是有趣的。

http://gcc.gnu.org/onlinedocs/libstdc /manual/status.html#status.iso.2011

前往第28节,正则表达式。如果您使用的是libstdc (几乎可以确定您在Ubuntu上),那么您还不能使用Regex。

这是可耻的,因为G 的C 11工具链否则非常坚固。

您可能需要为此使用Boost或其他REGEX库。或在clang(以及Clang的库)或MSVC(及其库)上进行更改。

相关文章:
  • 没有找到相关文章