/*1 正则表达式 搜索6位数 */
std::string aa = "072007P44";
std::string bb = "072007 P44";
std::regex pattern("([0-9]{6})");
std::smatch matches;
if (std::regex_search(aa, matches, pattern)) {
std::string result = matches[1].str();
std::cout << aa << std::endl;
std::cout << result << std::endl;/* 072007 */
}
else {
std::cout << "No match found." << std::endl;
}
if (std::regex_search(bb, matches, pattern)) {
std::string result = matches[1].str();
std::cout << bb << std::endl;
std::cout << result << std::endl;/* 072007 */
}
else {
std::cout << "No match found." << std::endl;
}
// 2
std::string aa = "CTD220162_1_KSZJ_008-REV01";
std::regex pattern("[_-]([A-Z]+[_-][0-9]+)[_-]");
std::smatch matches;
if (std::regex_search(aa, matches, pattern)) {
std::string result = matches[1].str();
std::cout << result << std::endl; // KSZJ_008
}
else {
std::cout << "No match found." << std::endl;
}
// 3 找6位字符串
vector<string> GetRegexString(const string& cstr) {
smatch matches;
vector<string> cstrs;
regex x("^.*([_-](([1-9]|[a-z]|[A-Z]){6})[_-]).*$"); // tak2500446_123456_tra
if (regex_search(cstr, matches, x))
cstrs.push_back(matches[1]), // _123456_
cstrs.push_back(matches[2]);//123456
return cstrs;
}
// 4 找7位字符串
vector<string> GetRegexString_a(const string& cstr) {
smatch matches;
vector<string> cstrs;
regex x("^.*([_-](([1-9]|[a-z]|[A-Z]){7})[_-]).*$");// tak2500446_123456A_tra
if (regex_search(cstr, matches, x))
cstrs.push_back(matches[1]),// _123456A_
cstrs.push_back(matches[2]);//123456
return cstrs;
}
正则表达式匹配字符串
于 2023-07-28 08:21:36 首次发布