正则表达式匹配xml标记的内容

时间:2017-03-24 14:15:26

标签: c++ regex c++11

我有一个字符串:

<tag1 qwer=123>Hello</tag1>

我想要一个正则表达式,它的内部内容只有一个匹配:

Hello

使用以下代码:

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

我得到一个匹配和一个子匹配:

<tag1>Hello</tag1>
Hello

我应该使用什么正则表达式来获得一个匹配:

Hello

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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