2017-05-12 18 views
-1

我想要計算字符串內的「^」(帽子符號)的數量,但下面的代碼返回錯誤的數字。.NET C++正則表達式::匹配() - >計數返回錯誤的數字

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

//output: 
// 2 

然而,輸出應該是4,爲什麼我得到2呢?

+0

什麼版本的c + +?它是posix正則表達式嗎? dot-net在C++中?!? – sln

+0

如果這是C++/CLI,那麼'System :: String *'應該是非法的(需要'String ^'(注意:''C++ - cli'是正確的標籤,而不是'C++') – crashmstr

+0

感謝提示,我改變了標籤,這是一個非常古老的項目,我正在處理這個項目,它包含託管和本地C++。老實說,我不確定爲什麼String *可以在這個特定的項目中工作。字符串^代替。 – reubonwry

回答

2

使用"\\^"而不是"\^""\^""^"相同,作爲正則表達式意味着「開始行」。