例如:" select * from somewhere where x = 1"
我想找到以空格分隔的" where",而不是" where"内的" somewhere".在示例中"where"由空格分隔,但它可以是回车符,制表符等.
注意:我知道正则表达式会让它变得容易(正则表达式相当于" \bwhere\b"),但我不想为我的项目添加一个正则表达式库来执行此操作.
如果你想使用字符串操作的纯MFC方法,那么这应该工作:
CString strSql = _T("select * from somewhere where x = 1");
int nTokenPos = 0;
CString strToken = strSql.Tokenize(_T(" \r\n\t"), nTokenPos);
while (!strToken.IsEmpty())
{
if (strToken.Trim().CompareNoCase(_T("where")) == 0)
return TRUE; // found
strToken = strSql.Tokenize(_T(" \r\n\t"), nTokenPos);
}
return FALSE; // not found
Run Code Online (Sandbox Code Playgroud)