gpt4 book ai didi

php - 如何使用 PHP 验证正则表达式

转载 作者:可可西里 更新时间:2023-11-01 12:52:34 27 4
gpt4 key购买 nike

我希望能够验证用户输入的正则表达式,以检查它是否有效。我在 PHP 的 filter_var 中发现的第一件事使用 FILTER_VALIDATE_REGEXP 常量,但这并不能满足我的要求,因为它必须将正则表达式传递给选项,但我不反对任何正则表达式,所以基本上它只是检查正则表达式的有效性。

但是你明白了,我如何验证用户输入的正则表达式(不匹配)。

验证示例,简单来说:

$user_inputted_regex = $_POST['regex']; // e.g. /([a-z]+)\..*([0-9]{2})/i

if(is_valid_regex($user_inputted_regex))
{
// The regex was valid
}
else
{
// The regex was invalid
}

验证示例:

/[[0-9]/i              // invalid
//(.*)/ // invalid
/(.*)-(.*)-(.*)/ // valid
/([a-z]+)-([0-9_]+)/i // valid

最佳答案

这是一个想法(demo):

function is_valid_regex($pattern)
{
return is_int(@preg_match($pattern, ''));
}

preg_match() returns the number of times pattern matches. That will be either 0 times (no match) or 1 time because preg_match() will stop searching after the first match.

preg_match() returns FALSE if an error occurred.

要获取模式无效的原因,请使用 preg_last_error

关于php - 如何使用 PHP 验证正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10048147/

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