c++正则表达式模板库GRETA的使用
2024-08-30 15:53:55
GRETA是微软研究院的一位前员工开发并开源的一个C++正则表达式库,兼容perl正则语法
官方介绍:“A fast, flexible, perl-compliant regular expression template library for C++.”
获取地址:http://research.microsoft.com/en-us/downloads/bd99f343-4ff4-4041-8293-34c054efe749/default.aspx
c++的正则库,有一个历史悠久的pcre库(还有一个对应的c++封装:pcre++), 另外boost也提供了正则库
我的需求比较简单,所以不愿意用复杂的东西,就试试这个库吧
当前最新版本是2.6.4,下载greta-2.6.4.zip解压后,包含以下文件:
其中great2.htm是说明文档,里面包含了一些例子
要使用这个库,只需要在你的.cpp里包含regexpr2.h这个头文件即可
简单用法(包含match和split):
1. match:匹配是否存在以"No matching devices found"开头的行
TCHAR str[] = _T("No matching devices found");
match_results results;
rpattern pat(_T("^No\\smatching\\sdevices\\sfound"));
match_results::backref_type br = pat.match( str, results);
if (!br.matched) {
// Not matched
} // Matched
2.split:切分某行并获得其中一个字段
TCHAR str[] = _T("ROOT\\MEDIA\\0001 : XXX Virtual Audio Driver");
rpattern pat(_T("\\s+"));
split_results sp_res;
size_t num = pat.split(str, sp_res);
if (num > ) {
// success
std::wstring info = (sp_res.strings())[];
}
以空格作为分隔符,将str切分为多个段,取得第一个段的值 info中的值为"ROOT\\MEDIA\\0001"
参考资料:
1.greta-2.6.4\greta2.html
2.小骆驼书 《perl语言入门(第4版)》
最新文章
- js访问php,返回数组时的注意事项
- Visual Studio SetSite failed for package [JavaScriptWebExtensionsPackage] 错误解决方案一则
- delphi 串口 关于RS485总线通信协议开发注意事项
- 用Docker封装一个web应用(Django)
- linux命令学习-复制(cp,scp)
- OC基础11:基本的C语言特性2
- WPF自动更新程序
- Supervisor 为服务创建守护进程
- asp.net/wingtip/显示数据和详细信息
- Array.prototype.reduce()
- MFC原理第二讲.MFC的初始化过程
- 浏览器 User-Agent相关知识
- 1.golang的环境搭建及入门
- POJ-2533.Longest Ordered Subsequence (LIS模版题)
- Java微信二次开发(三)
- 【转】Python中的字符串与字符编码
- Docker Compose一键部署Nginx反向代理Tomcat集群
- Confluence 6 有关空间的一些提示
- Road Crossing Game Template 学习
- php 通过 strtr 方法来替换文本中指定的内容