既然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
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/20589
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!