在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")));//取出匹配的东东
     }
   
 }

转载于:https://www.cnblogs.com/NewZi/archive/2011/01/29/1947545.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值