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

28 浏览
0 Comments

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

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

是否有一个正则表达式来检测有效的正则表达式?

是否有可能有某种正则表达式可以匹配正则表达式?

例如,正则表达式可以匹配/(.*?)/,但不能匹配/(.?+/

我并不真正想要一个例子(因为我压根不知道它怎么工作,也不真正需要一个),但我想看看你们能想出什么样的工作例子。

提前感谢!

admin 更改状态以发布 2023年5月24日
0
0 Comments

简短回答: 可能。


更长的回答: 这将比您想象的更加复杂。更不用说,有许多不同的正则表达式类型,根据您想要验证的深度,您需要选择哪种类型进行验证。此外,某些正则表达式类型不够强大,无法完成一些这个表达式需要完成的更困难的任务。


建议的回答: 不要使用正则表达式,而是利用您正在使用的任何编程语言的内在优势。换句话说,只需尝试使用表达式并注意异常或任何其他故障。

例如,在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

0