如何使用 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