如何使用 RegExp 验证字符串表达式?
How to Validate string Expression using RegExp?
我有一个字符串“\03COUNTER\TIME_NOW”
COUNTER 前缀允许的最小值到最大值的有效范围是 01 到 09
示例:
"COUNTER\TIME_NOW": Valid
"COUNTER\TIME_NOW": Not valid
"[=10=]COUNTER\TIME_NOW": Not valid
"COUNTER\TIME_NOW": Not valid
有人可以给出如何使用正则表达式获得 valid/Not 有效的状态吗?
\0[1-9]COUNTER\TIME_NOW
是您要查找的正则表达式。
#include <iostream>
#include <string>
#include <regex>
int main ()
{
if (std::regex_match ("\02COUNTER\TIME_NOW", std::regex("\\0[1-9]COUNTER\\TIME_NOW") ))
std::cout << "valid\n";
else
std::cout << "invalid\n";
if (std::regex_match ("\10COUNTER\TIME_NOW", std::regex("\\0[1-9]COUNTER\\TIME_NOW") ))
std::cout << "valid\n";
else
std::cout << "invalid\n";
if (std::regex_match ("\00COUNTER\TIME_NOW", std::regex("\\0[1-9]COUNTER\\TIME_NOW") ))
std::cout << "valid\n";
else
std::cout << "invalid\n";
if (std::regex_match ("\88COUNTER\TIME_NOW", std::regex("\\0[1-9]COUNTER\\TIME_NOW") ))
std::cout << "valid\n";
else
std::cout << "invalid\n";
return 0;
}
打印
valid
invalid
invalid
invalid
我有一个字符串“\03COUNTER\TIME_NOW”
COUNTER 前缀允许的最小值到最大值的有效范围是 01 到 09
示例:
"COUNTER\TIME_NOW": Valid
"COUNTER\TIME_NOW": Not valid
"[=10=]COUNTER\TIME_NOW": Not valid
"COUNTER\TIME_NOW": Not valid
有人可以给出如何使用正则表达式获得 valid/Not 有效的状态吗?
\0[1-9]COUNTER\TIME_NOW
是您要查找的正则表达式。
#include <iostream>
#include <string>
#include <regex>
int main ()
{
if (std::regex_match ("\02COUNTER\TIME_NOW", std::regex("\\0[1-9]COUNTER\\TIME_NOW") ))
std::cout << "valid\n";
else
std::cout << "invalid\n";
if (std::regex_match ("\10COUNTER\TIME_NOW", std::regex("\\0[1-9]COUNTER\\TIME_NOW") ))
std::cout << "valid\n";
else
std::cout << "invalid\n";
if (std::regex_match ("\00COUNTER\TIME_NOW", std::regex("\\0[1-9]COUNTER\\TIME_NOW") ))
std::cout << "valid\n";
else
std::cout << "invalid\n";
if (std::regex_match ("\88COUNTER\TIME_NOW", std::regex("\\0[1-9]COUNTER\\TIME_NOW") ))
std::cout << "valid\n";
else
std::cout << "invalid\n";
return 0;
}
打印
valid
invalid
invalid
invalid