VC2008中配置与使用boost库正则表达式

简介: 本文介绍使用boost库正则表达式来解决字符匹配、搜索、替换等应用。1、下载与安装boost库 有关boost的使用可以参考http://www.boost.org/  2、编译动态库,本文只要支持正则表达式就可以,因此只需要编译E:/boost/libs/regex/build目录下的文件。

本文介绍使用boost库正则表达式来解决字符匹配、搜索、替换等应用。
1、下载与安装boost库
 有关boost的使用可以参考
http://www.boost.org/
  
2、编译动态库,本文只要支持正则表达式就可以,因此只需要编译E:/boost/libs/regex/build目录下的文件。这步比较关键。
    具体操作:
  在“运行”里输入“cmd”,打开命令提示符;
  输入命令“cd E:/boost/libs/regex/build”,设置当前目录
  设置VC2008的配置环境变量,找到Microsoft Visual Studio 9.0/VC/bin/VCVARS32.BAT文件,把VCVARS32.BAT文件用鼠标拖到打开的cmd窗口("F:/Program Files/Microsoft Visual Studio/VC/bin/VCVARS32.BAT"),然后回车。
  输入命令“nmake –f vc9.mak”
  等待几分钟,E:/boost/libs/regex/build多了一个vc9的文件夹,里面是很多lib和dll文件。

3、配置VC2008 “VC++目录”,使它编译使时候能找到正则库。
  打开vc2008,选择“工具->选项->项目与解决方案->显示以下内容的目录-> 包含文件”,加入一行“E:/BOOST”
   选择“工具->选项->项目与解决方案->显示以下内容的目录-> 库文件”,加入一行“E:/BOOST /libs/regex/build/vc90” 

4、编写程序测试
   VC2008中默认的是UNICODE编码字符集,要使用regex的UNICODE版本tregex.关于正则表达式的应用可以查看使用说明和实例,分别放在libs/regex/doc和libs/regex/example目录中.注意在编译连接的时候可能会报告libboost_regex-vc90-mt-gd-1_39.lib文件无法找到,需要把libboost_regex-vc90-mt-gd-1_38.lib改成libboost_regex-vc90-mt-gd-1_39.lib

  新建一个对话框的MFC工程,
  加入头文件
  #include <boost/regex/mfc.hpp>
  在按钮鼠标单击事件响应函数中加入

    boost::tregex expression(_T("^select ([a-zA-Z]*) from ([a-zA-Z]*)"));
    CString sRet;
    CString in = _T("select gm from tab");
    boost::tmatch what;

    if(boost::regex_match(in, what, expression))//CString转string
    {
        for(int i=0;i<what.size();i++)
        {
            sRet =  CString(what.first, what.length(i));
            MessageBox(sRet);
        }
    }else{
        MessageBox(_T("Error Input"));
    }
  输出的结果如下:

select gm from tab
gm
tab
目录
相关文章
Python 内置正则表达式库re的使用
正则表达式是记录文本规则的代码,用于查找和处理符合特定规则的字符串。在Python中,常通过原生字符串`r&#39;string&#39;`表示。使用`re.compile()`创建正则对象,便于多次使用。匹配字符串有`match()`(从开头匹配)、`search()`(搜索首个匹配)和`findall()`(找所有匹配)。替换字符串用`sub()`,分割字符串则用`split()`。
|
8月前
|
Python Windows
【Python进阶必备】一文掌握re库:实战正则表达式
【Python进阶必备】一文掌握re库:实战正则表达式
180 0
|
6月前
|
存储 C++ 容器
C++一分钟之-正则表达式库(regex)
【7月更文挑战第7天】C++从C++11开始支持正则表达式,通过`&lt;regex&gt;`库提供功能。本文涵盖基本概念如`std::regex`、`std::smatch`,以及`regex_search`和`regex_match`的使用。常见问题包括大小写敏感性、特殊字符转义、贪婪与非贪婪匹配和捕获组。提供的代码示例展示了如何进行匹配、不区分大小写的匹配、特殊字符匹配、贪婪与非贪婪匹配和捕获组的使用。理解并练习正则表达式能提升文本处理效率。
123 0
|
7月前
|
Python
python re 正则表达式库的使用
python re 正则表达式库的使用
50 0
|
8月前
|
存储 JavaScript API
C++ 正则表达式库 std::basic_regex 中文手册(API说明来自cppreference.com)
C++ 正则表达式库 std::basic_regex 中文手册(API说明来自cppreference.com)
178 0
|
8月前
|
Python
在Python中,如何使用`regex`库进行正则表达式匹配?
在Python中,如何使用`regex`库进行正则表达式匹配?
79 0
|
8月前
|
Python
除了`re`模块,还有哪些库可以用于正则表达式的匹配?
【2月更文挑战第11天】【2月更文挑战第31篇】
76 0
|
7月前
|
数据库 Python
Python网络数据抓取(8):正则表达式
Python网络数据抓取(8):正则表达式
70 2
|
7月前
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
7月前
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。