.NET C++ Regex::Matches()->Count returns 错误的数字

.NET C++ Regex::Matches()->Count returns wrong number

我正在尝试计算字符串中“^”(帽子符号)的数量,但下面的代码 returns 是错误的数字。

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

//output:
// 2

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

使用 "\^" 而不是 "\^""\^""^" 相同,作为正则表达式表示 "start of a line".