我想在PHP中测试正则表达式的有效性,最好在使用前进行测试。这样做的唯一方法是实际尝试a preg_match()并查看是否返回FALSE吗?
preg_match()
FALSE
有没有更简单/正确的方法来测试有效的正则表达式?
// This is valid, both opening ( and closing ) var_dump(preg_match('~Valid(Regular)Expression~', null) === false); // This is invalid, no opening ( for the closing ) var_dump(preg_match('~InvalidRegular)Expression~', null) === false);
正如用户 pozs 所说,还应 考虑@@preg_match()在测试环境中 放在 preg_match() () 前面, 以防止发出警告或通知。
@
@preg_match()
要验证RegExp只需对其运行null (无需知道您要预先测试的数据) 。如果返回显式false(=== false),则表示它已损坏。否则它是有效的,尽管它不需要匹配任何内容。
null
=== false
因此,无需编写自己的RegExp验证器。 浪费时间了…