求教大侠一个关于 regexp 正则表达式的问题

xiangzhong 2006-05-11 10:38:35
为什么我的返回的总是空字符串啊?

IRegExp* re=new IRegExp; //初始化一个 字符串 正则表达式

re->SetIgnoreCase(true); //忽略大小写
re->SetGlobal(true); //搜索整个字符串

LPCTSTR str1="I am a writer and he is a worker.";
re->SetPattern("am|is");
str1=re->Replace(str1,"are");

为什么替换后str1变成空字符串""了呢?

哪里错了,请指教?
...全文
165 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunmz_wjxy 2006-07-22
  • 打赏
  • 举报
回复
CComPtr<IRegExp> ptrRegExp;
CoCreateInstance(__uuidof(RegExp), NULL, CLSCTX_INPROC_SERVER, __uuidof(IRegExp), (void**)&ptrRegExp);
ptrRegExp->put_Global(VARIANT_TRUE);
ptrRegExp->put_IgnoreCase(VARIANT_TRUE);
CString csPattern4PTR = _T("^[1-9](?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)[0-9]{2}$");
ptrRegExp->put_Pattern(_bstr_t(csPattern4PTR));

memset(value, '\0',1024);
GetDlgItemText(dlgItem, value, 1024);

VARIANT_BOOL vbMatch;
ptrRegExp->Test(_bstr_t(value),&vbMatch);

if (!(kvValid.IsDateDDMMMYY(value) || kvValid.IsDateDDMMMYYYY(value) || vbMatch == -1))
{
TCHAR promptMsg[1024];
//LoadString(m_hInstResource, ResourceID, promptMsg,1024);
LOAD_STR(ResourceID, promptMsg,1024);
MessageBox(promptMsg ,promptTitle ,MB_OK|MB_ICONSTOP);
::SetFocus(GetDlgItem(dlgItem));
return(false);
}
lion_wing 2006-05-11
  • 打赏
  • 举报
回复
什么编程环境?没见过

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧