有人可以告诉我我在做什么错吗?这就是接受一切作为比赛。
if (preg_match("/^[A-Z][a-z][a-z][0-9]|[1-9][0-9]|1[0-4][0-9]|15[0-1]:[0-9]|[1-9][0-9]|1[0-6][0-9]|17[0-6]/", $_GET['id']))
{
echo "match";
}
else
{
echo "no match";
}
我希望它仅在第一个字母为大写AZ,第二个字母为小写字母az,第三个字母为小写字母az,然后在1到150之间的数字,冒号:,然后在1之间的数字时才匹配和176。应该匹配Abc150:176 Zyx1:1,但不匹配aBc151:177
用这个:
^[A-Z][a-z]{2}(?:[1-9][0-9]?|1[0-4][0-9]|150):(?:[1-9][0-9]?|1[0-6][0-9]|17[0-6])$
参见演示。
^
断言我们在字符串的开头[A-Z][a-z]{2}
匹配一个大写字母和两个小写字母(?:[1-9][0-9]?|1[0-4][0-9]|150)
匹配从1到150的数字:
匹配冒号(?:[1-9][0-9]?|1[0-6][0-9]|17[0-6])
匹配从1到176的数字$
断言我们在字符串的末尾在php中:
$regex = "~^[A-Z][a-z]{2}(?:[1-9][0-9]?|1[0-4][0-9]|150):(?:[1-9][0-9]?|1[0-6][0-9]|17[0-6])$~";
echo (preg_match($regex,$string)) ? "***Match!***" : "No match";
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句