//2010-5-2 20:25:20 #include <atlrx.h> #include <stdio.h> int main(int argc, char* argv[]) { char szString[] = "123-456-789"; char szRegExp[] = "{(//d?)}-{(//d+)}-{(//d*)}"; CAtlRegExp<> reUrl; REParseError status = reUrl.Parse(szRegExp); if ( REPARSE_ERROR_OK != status ) { return -1; } CAtlREMatchContext<> mcUrl; if ( ! reUrl.Match(szString, &mcUrl) ) { return -2; //不匹配 } else { const CAtlREMatchContext<>::RECHAR* szStart = 0; const CAtlREMatchContext<>::RECHAR* szEnd = 0; ptrdiff_t nLength = 0; for ( UINT nGroupIndex = 0; nGroupIndex < mcUrl.m_uNumGroups; ++nGroupIndex ) { mcUrl.GetMatch(nGroupIndex, &szStart, &szEnd); nLength = szEnd - szStart; printf("%d: /"%.*s/"/n", nGroupIndex, nLength, szStart); } } printf("/r/nOk..."); getchar(); return 0; } 小记:改用VC.net也有一段时间了,目前我的系统里是VC6与VC.net并存,渐渐发现VC.net与VC6相比确实还是有很多优势的。