使用查找表表示正则表达式模式

Jam*_*man 5 regex sql lookup-tables

我最近遇到了一个建议,即我们的应用程序代码库中使用的正则表达式模式被合并到一个查找表中,并从那里检索而不是在程序逻辑中明确地硬编码.

任何人都可以分享任何关于这个智慧的想法吗?

我最初的想法是它使模式更容易改变,这既有优点也有缺点.但是,从根本上说,我认为正则表达式字符串本身是一个(有效)执行的逻辑实体,因此将它们存储在查找表中只会让我感到有点不安.

想什么?

谢谢

Moo*_*ice 2

我认为这是一个很好的主意,如果您设法改进正则表达式模式(或者甚至解决它的问题),您将在一个地方而不是到处更改它(可能就是这样做的动机) 。

这将减少程序中潜在错误的数量(或者增加错误的数量,如果您错误地更改了它)。但是,这“应该”几乎立即在测试中显现出来,并且您仍然只需在一处修复它,而不是到任何地方......再一次,更容易出错)。

关于将其视为逻辑实体,如果您将其视为保存在参考库中的一组指令,而不是逻辑本身,会有帮助吗?逻辑本身是由正则表达式处理器执行的,而不是由您在代码中键入的模板执行的,因此我认为它是存储在查找表中的良好候选者。