我正在这个正则表达式中工作以完全匹配以下模式。问题是,如果超过它,则不应考虑该模式:
我想要以 # 开头的正好 6 位数字,但如果我写{5}则返回 true。然后同样的情况发生在 ;我只想要一个,并在最后。另外,我不知道如何使用这里的$ 来指定最后一个字符。
if(preg_match(('/^(#)+([0-9]{6}){1}(;)/'),"#128515;")){
return true;
}
应采用以下格式:
#128515; for #DDDDDD; not ##DDDD;;
正好 6 位数字以 1 #
开头,以 1 位;
结束
当preg_match与给定的主题匹配时,它将返回 1,如果您有 6 位数字,则在没有结束分号时也可以匹配 5,因为没有设置结束边界。
您可以添加锚点^
和$
来断言字符串的开头和结尾,使其与 6 位数字正好匹配。
从您的模式中,您可以省略{1}
因为该组已经匹配了 1 次。如果您没有在代码中引用组,您也可以省略它们,而只匹配我们。
您可以使用:
^#[0-9]{6};$
-
^
字符串开头 -
#
匹配 # -
[0-9]{6};
匹配 6 位数字 -
$
断言字符串结尾
您的代码可能如下所示
if(preg_match(('/^#[0-9]{6};$/'),"#128515;")){
return true;
}