我想验证我的数字与regex之前使用它,但它不工作我希望第一个数字以0开始,然后是2或5,然后是4,其余的继续到10数字
<?php $str = "0241310102"; $pattern = "([0]{1}[2,5]{1}[4]{1}[0-9]{7})"; if(preg_match($pattern, $str)){ echo "YES"; }else{ echo "NO"; } ?>
lf5gs5x21#
1.您需要将模式锚定到字符串的开始/结束(^,$)。1.个位数不需要指定为字符类[0] → 01.如果不是一个0{1} → 0,则仅需指定量词
^
$
[0]
0
0{1}
[2,5]
[25]
$examples = [ "0241310102", "1241310102", "0541310102", "0551310102", "0241" ]; $pattern = '(^0[25]4[0-9]{7}$)'; foreach ($examples as $example) { echo $example, ": "; if (preg_match($pattern, $example)) { echo "YES", "\n"; } else { echo "NO", "\n"; } }
1条答案
按热度按时间lf5gs5x21#
1.您需要将模式锚定到字符串的开始/结束(
^
,$
)。1.个位数不需要指定为字符类
[0]
→0
1.如果不是一个
0{1}
→0
,则仅需指定量词[2,5]
将在字符类中包含逗号→[25]