C++ 正则表达式在c+中的使用+;11

C++ 正则表达式在c+中的使用+;11,c++,regex,C++,Regex,我正在使用VS2010 我对正则表达式有问题 我应该使用什么正则表达式来搜索字符串 std::string foo("s:{foo} s1:{bar}"); 单词foo,bar 而且可能知道他们的位置 我想大概是 std::regex r("\\{.*\\}"); 应该有用。但事实并非如此。 为什么?对于字符串s:{foo}s1:{bar} {.*}将匹配{foo}s1:{bar} *贪婪地匹配也就是说,在您的情况下,它将匹配到最后一个} {.*?}将匹配{foo},在下一个匹配中它将匹配

我正在使用VS2010

我对正则表达式有问题

我应该使用什么正则表达式来搜索字符串

std::string foo("s:{foo} s1:{bar}");
单词foo,bar 而且可能知道他们的位置

我想大概是

std::regex r("\\{.*\\}");
应该有用。但事实并非如此。
为什么?

对于字符串
s:{foo}s1:{bar}

{.*}
将匹配
{foo}s1:{bar}

*
贪婪地匹配也就是说,在您的情况下,它将匹配到最后一个
}


{.*?}
将匹配
{foo}
,在下一个匹配中它将匹配
{bar}


*?
懒洋洋地匹配也就是说,它会一直匹配到第一个
}
在你的情况下

也许你应该在开始之前阅读一些关于正则表达式的教程:你得到了什么错误..什么是匹配的,什么是不匹配的..你需要在问题BTW中指定所有这些内容。有人能告诉我为什么像格式化教程中的两个空格不能给我带来乐趣吗?
@makefun什么是
两个空格
。对不起,我无法理解你的要求。我试图在下面的链接中用正确的格式在这里写评论。有人说,要做新行,我应该使用两个空格,但这对我不起作用。