gpt4 book ai didi

php - 为什么我的 RegExp 返回 false 且字符数正确?

转载 作者:行者123 更新时间:2023-11-29 09:14:53 24 4
gpt4 key购买 nike

$gi = filter_var(filter_var($_POST['group_id'], FILTER_SANITIZE_STRING),
FILTER_VALIDATE_REGEXP, array(
"options"=>array("regexp"=>"/^[a-zA-Z0-9_](?=[^\s]+$).{5,20}$/")));

这是我正在使用的代码。这是一个 PHP 和 MySQL 应用程序。问题在于,对于任何 5 个字符或更短的字符,它都会返回 FALSE。如果我将“5”更改为“6”,则任何 6 个字符或更短的字符都会返回 FALSE。为什么是这样?

此外,以下代码的行为相同:

$gi = filter_var($_POST['group_id'], FILTER_VALIDATE_REGEXP,
array("options"=>array(
"regexp"=>"/^[a-zA-Z0-9_](?=[^\s]+$).{5,20}$/")));

我的印象是我的正则表达式是 1) 限制条目为字母、数字和下划线,2) 禁止空格,3) 要求至少 5 个字符并设置最多 20 个字符。

最佳答案

你的正则表达式:

/^[a-zA-Z0-9_](?=[^\s]+$).{5,20}

匹配 5 个字符,但仅在匹配 [a-zA-Z0-9_] 中的 1 个字符之后,然后再匹配 5 个字符。因此至少需要 6 个字符的字符串来匹配。

根据您的最后一段,以下内容更符合您的要求:

/^[0-9a-zA-Z_]{5,20}$/

编辑:感谢@Allan,已更正,尚未完全融入认知思维模式,咖啡匮乏。 ;-)

关于php - 为什么我的 RegExp 返回 false 且字符数正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4471448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com