1、使用类及函数
regex函数
正则表达式C++
文章来源:https://www.toymoban.com/news/detail-725471.html
2、正则表达式
自己定义的一些简单的正则表达式
namespace nsCrvt
{
const string rxNameModel = "TotalFlrModelInfo\\.ini" ; // 模型信息文件名
const string rxModelinf = "\\[模型信息\\]" ; // 模型信息文件内
const string rxModelStdF = "\\[第(([0-9]){1,3})标准层\\]" ; // 模型信息文件内 最多支持999层
const string rxNameStdFType = "_第(([0-9]){1,3})标准层yjkbimmodel\\.txt" ; // 标椎层文件名 最多支持999层
const string rxStdFType = "(类型\\:)" ; // 类型:***
const string rxData = "(([0-9]){1,10})";
const string rxAdd = "(\\*|x|X)";
const string rxData0 = "(([0-9]){0,10})";
const string rxAdd0 = "((\\*|x|X){0,1})";
}
// 这个很好玩
regex::flag_type flag = regex::ECMAScript | regex::icase; //默认语法 + 忽略大小写
3、正则使用示例
(1)sregex_iterator 使用示例
void Data(CString mSectName)
{
vector<string> vctData;
string strRx = rxData;
string str = CW2A(mSectName);
regex::flag_type flag = regex::ECMAScript /*| regex::icase*/; //默认语法
regex rx(strRx, flag);
{
sregex_iterator iter(str.begin(), str.end(), rx);
std::sregex_iterator end;
while (iter != end)
{
size_t nSize = iter->size();
if (nSize >= 1)
{
string csstr = (*iter)[0];
vctData.push_back(csstr);
}
iter++;
}
}
}
(2)regex_match 使用示例
bool bMatch(CString mSectName)
{
regex::flag_type flag = regex::ECMAScript /*| regex::icase*/; //默认语法
string strRx = rxH + rxData + rxAdd + rxData + rxAdd + rxData + rxAdd + rxData + rxAdd0 + rxData0 + rxAdd0 + rxData0;
regex rx(strRx, flag);
string str = CW2A(mSectName);
match_results<string::const_iterator> match;
bool bMatch = regex_match(str, match, rx);
return bMatch;
}
文章来源地址https://www.toymoban.com/news/detail-725471.html
到了这里,关于正则表达式C++的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!