在c ++中,我正在尝试编写自己的基本逻辑表达式求值程序,并且我在将String ^转换为std :: string值时遇到问题。 以下是我的代码片段:
String^ pattern = "[a-zA-Z ]+[>]+[ a-zA-Z]*" ;
Regex^ regex = gcnew Regex( pattern );
for( Match^ match = regex->Match( myExpression ); match->Success; match = match->NextMatch( ) )
{
if( match->Value->Length > 0 )
{
GetExpression(match->Value);
}
}
以下是GetExpression()的私有方法定义:
bool GetExpression(String^ matchedExpression)
{
--> std::string normalString = marshal_as<std::string>(matchedExpression);
std::vector<std::string> mystring = StringSplit(normalString, " ", false);
return true;
}
上面标记的行正在生成一个我不期望的值。使用字符串输入“ax&gt; bx”时,返回到normalString的值是一个7的数组,数组的第一个值为“!”其余的都是空的。我在路上有什么错误吗? myExpression似乎具有“ax&gt; bx”的正确值。提前谢谢。