📄 example.cpp
字号:
// example.cpp
//
// 正则表达式解析库演示
//
// 与2004年在北京写于创意鹰翔公司
// 版权申明:
// 作者放弃除著作署名权之外的任何权益。你可以在保留此申明的前提下,自由的,无限制的
// 分发、修改和使用本函数库。
// 如果你有任何建议和BUG汇报,欢迎你联系原始作者:tearshark@eaglefly.com.cn
//
// 原始作者 : lanzhengpeng(兰征鹏)
// Modify time : 2004-6-15 18:52
// 历史: 参看re_history.txt
//-----------------------------------------------------------------------------
#include <iostream>
#include <strstream>
#pragma warning(disable : 4786)
#include "regular.h"
std::string _get_cpp_string_with_comment(const unsigned char * psz)
{
re_pattern p;
p.parse((unsigned char *)"({\\s}([ \\t\\r\\n]*(\\o|\\p)[ \\t\\r\\n]*)*)+",NULL,VFX::rf_return);
re_result r;
p.match((unsigned char *)psz,r);
std::strstream strio;
strio << "\"";
for(size_t i=0; i<r.GroupCount(); ++i)
{
re_match mch = r[i];
if(mch.id == 0)
{
for(const unsigned char * sz=mch.begin+1; sz<mch.end-1; ++sz)
strio << *sz;
}
}
strio << "\"";
return std::string(strio.str(),strio.pcount());
}
int main()
{
std::string str(
"\"\\r\" // return\r\n"
"\"\\t\" // tab\r\n"
"\"\\r?\\n\" // newline\r\n"
"\"[a-zA-Z0-9]\" // alpha numeric\r\n"
"\"[ \\t]\" // white space (blank)\r\n"
"\"[a-zA-Z]\" // alpha\r\n"
"\"[0-9]\" // digit\r\n"
"\"[0-9a-fA-F]\" // hex digit\r\n"
"\"(\\\"[^\\\"]*\\\")|(\'[^\']*\')\" // quoted string\r\n"
"/*no implement*/\"test\" // all right\r\n"
"\"[a-zA-Z]+\" // simple word\r\n"
"\"[0-9]+\" // integer\r\n"
);
std::cout << str << std::endl;
std::cout << _get_cpp_string_with_comment((unsigned char *)str.c_str());
std::cout << std::endl;
re_pattern p;
p.parse((unsigned char *)"\\q",NULL);
re_result r;
p.match((unsigned char *)"\"ABCCC\\\"ADFSD\"",r);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -