zoukankan      html  css  js  c++  java
  • 在C++builder中使用正则表达式,非boost库,简单!~

    既然C++ builder本身不支持正则,或说不能很好的支持正则。 那么就要用到第三方的东东了,

    很多人选择boost(至少我搜索大部分是) 不过boost这东西好像对c++ builder支持不好。

    这里我选择微软的COM库,VBScript.RegExp,(*^__^*) 嘻嘻,一个脚本中的正则。

    这个和网络上c++ builder操作Excel的原理一样。

    下面就是取匹配字符串的代码了,如果要扩展此代码,(例如取子匹配)网上搜索一下

    VBScript.RegExp就能找到属性和方法了。

    第一次在博客园发文章,而且学习编程不久,代码可能有些错误,欢迎指正。

    void __fastcall TForm1::Button1Click(TObject *Sender)
      {
           //在ccrun.com学习到的,用宏节省时间,为了方便查看就放在这里了
           //感谢妖哥的ccrun.com
           #define   PG   OlePropertyGet
          #define   PS   OlePropertySet
          #define   FN   OleFunction
          #define   PR   OleProcedure
          Memo3->Clear();
         Variant    Axl= Variant::CreateObject("VBScript.RegExp"); //利用脚本里的正则
          Axl.PS("Global",true);//全局匹配
          Axl.PS("Pattern", Memo1->Text.t_str());  //写入正则表达式
          Variant    rtn=Axl.FN("Execute", Memo2->Text.t_str());//开始执行
          for (int i=0; i!= rtn.PG("Count"); i++) {
             Memo3->Lines->Add((rtn.PG("Item",i).PG("Value")));//取出匹配的东东
         }
       
     }
    
  • 相关阅读:
    浅谈 倍增/ST表
    Meetings S 题解
    排序模板
    Huffman 树
    2020.7.31 模拟赛 题解
    浅谈 最短路
    【lcez校内第三次考T1】【题解】folder
    【题解】 P2613 【模板】有理数取余
    【题解】P5535 【XR-3】小道消息
    【笔记】积性函数 与 欧拉函数
  • 原文地址:https://www.cnblogs.com/NewZi/p/1947545.html
Copyright © 2011-2022 走看看