将正则表达式限制为三个字符

时间:2015-05-20 16:24:57

标签: regex

我的正则表达式如下:

^[1-3][\/\][1-3]+$|-

它允许 到目前为止,1/32/32/-非常好。不幸的是3/3/3也有效。我试图像这样限制它:

^[1-3][\/\][1-3]{0,2}$|-

不能按预期工作。

如何只允许三个字符,其中first和last可以是1到3之间的数字或-,第二个字符必须是斜线?

编辑我写了错误的范围不是1-9而是1-3

3 个答案:

答案 0 :(得分:1)

我认为^[1-9-]/[1-9-]$就是你想要的!

DEMO

答案 1 :(得分:0)

您可以使用[0-9-]来匹配" 1到9之间的数字,或'-'"。总体表达式如下所示:

^[0-9-][\/][0-9-]$

Demo.

请注意,短划线位于字符类的末尾。这很重要,因为中间的破折号被解释为字符范围。

答案 2 :(得分:0)

这可能是您正在寻找的内容:(数字从1到3,在第一和第三位置可接受,#34; /"在它们之间)

void measureTime(FUNC_PTR ptr)
{
    time_t start_time = clock();
    ptr;
    time_t end_time = clock();
    printf("%f\n", (double)end_time - start_time);
}

DEMO