本文主要是介绍正则验证合同名称_【整理】C++正则表达式验证期货合约代码 | 勤奋的小青蛙,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
工作中有个小小的需求,获取合约代码的合约品种,那么目前四大交易所的合约代码基本上是按照如下编码:
两位字母+年月,比如cu1709,zn1801,SR801...
或者:
一位字母+年月,比如a1801
那么我所希望提取的仅仅是合约品种,那么只需要通过正则表达式,匹配下字母数字组合即可。代码如下:
// regex_match example
#include
#include
#include
int main ()
{
char cstr[] = "cu1709";
std::regex e("[a-zA-Z]{2}[0-9]{3,4}");
//char cstr[] = "a1701";
//std::regex e("[a-zA-Z]{1}[0-9]{3,4}");
if (std::regex_match (cstr, e))
std::cout << "string object matched\n";
std::cmatch cm; // same as std::match_results cm;
std::regex_match (cstr,cm,e);
std::cout << "string literal with " << cm.size() << " matches\n";
std::cout << "the matches were: ";
for (unsigned i=0; i
std::cout << "[" << cm[i] << "] ";
}
std::cout << std::endl;
return 0;
}
编译,执行:
g++ -std=c++11 -O2 -Wall -pedantic -pthread main.cpp && ./a.out
结果:
string object matched
string literal with 1 matches
the matches were: [cu1709]
这样匹配后(表达式:[a-zA-Z]{2}[0-9]{3,4}),就可以把我们需要的合约筛选出来了,然后进行字符串截取即可取到合约品种。
文章的脚注信息由WordPress的wp-posturl插件自动生成
|2|left
打赏
微信扫一扫,打赏作者吧~
这篇关于正则验证合同名称_【整理】C++正则表达式验证期货合约代码 | 勤奋的小青蛙的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!