国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VC中的正則表達式使用

VC中的正則表達式使用

rick1126

C、C++ (2003-04-22 16:59:56)


打算利用這幾天看得 服務, 線程TLS API, 同步和STL寫一個應用程序, 作為服務在后臺執(zhí)行, 檢測指定路徑的文件變化, 把修改過的匹配查詢表達式的文件進行備份, 這樣就有一個文件查詢和名稱匹配, 正則表達式自然是最好的解決方法. 不過VC里面竟然不如VBS對于Regular Expression那樣有支持, 除非升級到VC.NET, 我到CodeProject上面查詢找到了相關解決方案:

  其實VBS也是使用了微軟自己REGEX的一個COM, 稱為 "Microsoft VBScript Regular Expression 5.5" 我打開OleViewer找到了相關信息. 下面是那篇文章的使用例子

#import "RegExp.tlb" no_namespace
...
try {
  static IRegExpPtr regExp( __uuidof(RegExp) );
  regExp->Pattern = _bstr_t(lpszPattern);

  HWND hWndCtrl = pDX->PrepareEditCtrl(nIDC);
  if (pDX->m_bSaveAndValidate)
  {
      int nLen = ::GetWindowTextLength(hWndCtrl);
      ::GetWindowText(hWndCtrl, value.GetBufferSetLength(nLen),nLen+1);
      value.ReleaseBuffer();

      //now we verify it
      if ( regExp->Test( (LPCTSTR)value) )
      {
          IMatchCollectionPtr matches=regExp->Execute((LPCTSTR)value);
          if ( matches->Count== 1)
          {
              IMatchPtr match = matches->Item[0];
              if ( match->FirstIndex==0 && match->Length == value.GetLength() )
              {
                return;
              }
          }
      }
      CString strMsg = CString("The input does not exactly have the pattern ") + lpszPattern;
      pDX->m_pDlgWnd->MessageBox(strMsg);
      pDX->PrepareEditCtrl(nIDC);
      pDX->Fail();
  }
  else
  {
  }
}
catch (_com_error& e)
{
    AfxMessageBox( e.ErrorMessage() );
}
這樣操作就簡單多了, 不過對于COM這東西, 我倒是情愿到http://www.boost.org下載一個類庫, 不過不知道能不能使用在VC上面


本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
固定電話+手機號碼正則表達式
vb中使用正則表達式
vba正則表達式入門
JavaScript RegExp.$1
PostgreSQL - 正則函數(shù)regexp_like
【20181130】- 在ExcelVBA中使用正則表達式
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服