#include <regex>
#include <string>
#include <iostream>
#include <thread>
#include <fstream>
#include <sstream>
using namespace std;
int main()
{
//文本数据
string str = "1994 is my birth year 2000 dfsg";
//正则表达式
string regex_str("\\d{4}");
regex pattern1(regex_str, regex::icase);
smatch result;
//迭代器声明
string::const_iterator iter = str.begin();
string::const_iterator iterEnd = str.end();
string temp;
int i = 0;
string::const_iterator iter1, iter2;
//正则查找
while (std::regex_search(iter, iterEnd, result, pattern1))
{
temp = result[0];
if (i == 0)
iter1 = result[0].first; // result[o].first表示匹配字符在源字符串中的起始位置
else
iter2 = result[0].first;
cout << temp << endl;
iter = result[0].second; //更新搜索起始位置, second表示匹配字符串在源字符串中的结束位置
++i;
}
string str_1(iter1, iter2); // 1994 is my birth year(空格)
string str_2(iter2, str.cend()); // 2000 dfsg
//正则匹配
string regex_str2("(\\d{4})");
regex pattern2(regex_str2, regex::icase);
if (regex_match(str, result, pattern2)) {
cout << result[0] << endl;
cout << result[1] << endl;
}
auto id = std::this_thread::get_id();
stringstream ss;
ss << id;
auto s = ss.str();
cout << s << endl;
return 0;
}
std::regex
最新推荐文章于 2024-05-13 04:51:40 发布