使用查找表来匹配正则表达式模式

5
最近我遇到了一个关于正则表达式模式的建议,即将应用程序代码库中使用的正则表达式模式汇总到一个查找表中,并从那里检索,而不是在程序逻辑中明确硬编码。您有什么想法吗?
我的初步想法是这使得模式更容易更改,这既有优点也有缺点。但是,从根本上讲,我认为正则表达式字符串本身是一种逻辑实体,需要(有效地)执行,因此将它们存储在查找表中让我感到有点不安。
有什么想法吗?
谢谢
2个回答

2
我认为这是一个极好的想法。如果您能改进正则表达式模式(甚至修复问题),那么您只需要在一个地方进行更改,而不是每个地方 (这可能是这样做的原因)。
这将减少程序中潜在错误的数量 (或者如果您错误地进行更改,则会增加错误数量。然而,这应该在测试中立即显现,并且您仍然只需要在一个地方进行修复,而不是到处都要修复…再次,错误率更高)。
关于将其视为逻辑实体,如果您将其视为一组指令,这些指令保存在参考库中,而不是逻辑本身,那么这是否有帮助呢?逻辑本身由正则表达式处理器执行,而不是您在代码中键入的模板,所以我认为它是存储在查找表中的一个很好的选择。

1
如果这会导致不必要的SQL连接,我会说不要这样做。逃到山上去吧。
但是,如果它们经常被重复使用,请考虑如何重构您的代码。您是否应该在多个页面中包含它们的函数或类中使用它们?如果答案是否定的,那么请继续,我认为这没有问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接