gpt4 book ai didi

php - 计算 PHP PCRE RegEx 中的子模式

转载 作者:行者123 更新时间:2023-12-01 06:07:48 25 4
gpt4 key购买 nike

我想实现“正则表达式编辑器”之类的东西。它适用于我的 PHP 应用程序的高级用户。问题是,我需要诸如正则表达式的“反射”之类的东西(更准确地说,对于任何给定的正则表达式)来找出它包含多少个子模式。在 Python 中,我只需输入:

re.compile(regex).groups

如何在 PHP 中实现?如果能够安全地知道表达式是否能够编译,那就太好了。在Python中,会引发异常并且很容易处理它们。 PHP 在没有任何警报的情况下拍摄我的应用程序,或者产生一些无法捕获的警告/错误。

感谢您的建议!

最佳答案

没有对 preg 正则表达式进行内省(introspection) - pcre 有一个用于此的函数 (pcre_fullinfo),但由于某种原因 php 开发人员没有费心为其提供粘合。您可以考虑在 bugs.php.net 上提交功能请求。

检查正则表达式有效性的唯一方法是在 try-catch block 中编译它,请参阅 How to check if a string is a valid PCRE?举个例子。

也就是说,我认为允许用户在您的服务器上执行任意正则表达式不是一个好主意。恶意或简单的书写不当的表达式会很快耗尽所有内存。

关于php - 计算 PHP PCRE RegEx 中的子模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7268863/

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