评估正则表达式的正则表达式

这个问题在这里已经有了答案:

  • 是否有正则表达式来检测有效的正则表达式? 8个答案

  • 简短的回答:也许。


    较长的回答:如果你想要,它会变得更加复杂。 更何况,正则表达式有许多不同的风格,并且(取决于您想要验证这些表达式的深度),您需要选择要验证的风味。 此外,一些正则表达式的风格不够强大,不足以完成这个表达式需要做的一些更难的事情。


    建议的答案:不要使用正则表达式,但要获得所使用的任何编程语言的内部能力。 换句话说,只要尝试使用表达式,并注意发生异常(或任何其他故障)。

    例如,在Javascript中:

    function isRegexValid(expression) {
        try {
            new RegExp(expression);
            return true;
        } catch(e) {
            return false;
        }
    }
    
    console.log(isRegexValid('(.*?)')); // true
    console.log(isRegexValid('(.?+'));  // false
    

    例如,在PHP中:

    function isRegexValid($expression) {
        return preg_match($expression, '') !== false;
    }
    
    var_dump(isRegexValid('/(.*?)/')); // true
    var_dump(isRegexValid('/(.?+/'));  // false
    
    链接地址: http://www.djcxy.com/p/76737.html

    上一篇: Regex that Evaluates Regexes

    下一篇: How to identify a regular expression