C++ 用于xml标记';内容

C++ 用于xml标记';内容,c++,regex,c++11,C++,Regex,C++11,我有一个字符串: <tag1 qwer=123>Hello</tag1> 使用以下代码: string s = "<tag1>Hello</tag1>"; smatch sm; regex re("<tag1>([\\s\\S]*?)</tag1>"); regex_match(s, sm, re); 谢谢 这适用于有效的单行XML标记: regex re("[<][^>]+[>]([^<]+)[

我有一个字符串:

<tag1 qwer=123>Hello</tag1>
使用以下代码:

string s = "<tag1>Hello</tag1>";
smatch sm;
regex re("<tag1>([\\s\\S]*?)</tag1>");
regex_match(s, sm, re);

谢谢

这适用于有效的单行XML标记:

regex re("[<][^>]+[>]([^<]+)[<]\/[^>]+[>]");
regex re(“[]+[>]”([^]”);

您应该了解匹配组和捕获组之间的区别使用ECMAScript正则表达式无法做到这一点,因为它不支持lookbehinds。此外,访问捕获组值没什么大不了的,您已经知道如何做到这一点。使用现有的XML库。请参阅。使用正则表达式解析XML是有史以来最糟糕的想法。使用library类似PugiXML。使用XML解析器。请参阅。
<tag1>Hello</tag1>
Hello
Hello
regex re("[<][^>]+[>]([^<]+)[<]\/[^>]+[>]");