正则表达式评估正则表达式的正则表达式
正则表达式评估正则表达式的正则表达式
这个问题在这里已经有了答案:
是否有可能有某种正则表达式可以匹配正则表达式?
例如,正则表达式可以匹配/(.*?)/
,但不能匹配/(.?+/
。
我并不真正想要一个例子(因为我压根不知道它怎么工作,也不真正需要一个),但我想看看你们能想出什么样的工作例子。
提前感谢!
admin 更改状态以发布 2023年5月24日
简短回答: 可能。
更长的回答: 这将比您想象的更加复杂。更不用说,有许多不同的正则表达式类型,根据您想要验证的深度,您需要选择哪种类型进行验证。此外,某些正则表达式类型不够强大,无法完成一些这个表达式需要完成的更困难的任务。
建议的回答: 不要使用正则表达式,而是利用您正在使用的任何编程语言的内在优势。换句话说,只需尝试使用表达式并注意异常或任何其他故障。
例如,在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