.NETC++;Regex::Matches()->;计数返回错误的数字

.NETC++;Regex::Matches()->;计数返回错误的数字,.net,regex,visual-studio-2008,c++-cli,.net,Regex,Visual Studio 2008,C++ Cli,我试图计算字符串中“^”(帽子符号)的数量,但下面的代码返回了错误的数字 Int32 lNumber = 0; String* lString = S"abc^def^ghi^jkl"; lNumber = Regex::Matches(lString, S"\^")->Count + 1; Console::WriteLine(lNumber); //output: // 2 但是,输出应该是4。为什么我得到2呢?使用“\\^”而不是“\^”“\^”与“^”相同,它作为正则表达式仅表

我试图计算字符串中“^”(帽子符号)的数量,但下面的代码返回了错误的数字

Int32 lNumber = 0;
String* lString = S"abc^def^ghi^jkl";
lNumber = Regex::Matches(lString, S"\^")->Count + 1;
Console::WriteLine(lNumber);

//output:
// 2

但是,输出应该是4。为什么我得到2呢?

使用
“\\^”
而不是
“\^”
“\^”
“^”
相同,它作为正则表达式仅表示“行的开头”。

什么版本的c++?是posix正则表达式吗?c++中的点网?!?如果这是C++/CLI,那么
System::String*
应该是非法的(需要
String^
(注意:
C++-CLI
是正确的标记,而不是
C++
)。感谢您提供的提示,我更改了标记。这是我正在处理的一个非常旧的项目,它同时具有托管和本机C++。老实说,我不知道为什么String*在这个特定项目中有效。此解决方案中的其他项目确实需要String^。