我一直在努力寻找实现我的系统实际上是由一个字符串演出季和剧集数相匹配的好方法,你可以在这里看到当前工作代码:https://github.com/huddy/tvfilename这是我的PHP应用程序的正确设计模式?
我目前正在重写此库,并想要一个更好的方式来实现匹配如何发生,目前基本上它的工作方式是:
有一个文件夹中有类(称为处理程序),每个处理程序是一个类,实现一个接口,以确保方法称为match();存在,此匹配方法使用存储在该处理程序类(其中有很多)的属性中存储的正则表达式来尝试匹配季节和情节。
该类加载所有这些处理程序通过实例化每个存储在属性中的数组,当我想尝试匹配某些字符串时,该方法会遍历这些调用match()的对象;然后返回true的第一个返回结果集中的季节和它匹配的情节。
我真的不喜欢这样做,这对我来说有点不好,我希望设计模式能够帮助,我的最终目标是使用最佳实践来做到这一点,我想知道我是哪一种应该使用?
存在的其他问题是:
一个以上的处理器可以匹配的字符串,所以他们必须在为了防止更贪心的孩子第一个匹配的,不知道这是可解因为一些正则表达式模式必须是贪婪的,但可能是一个评分系统,它显示了匹配的正确性的百分比,但我不知道如何实际实现这一点。
我不是如果实例化所有这些处理程序是一种很好的方法,速度很重要,但是使用最佳实践并坚持设计模式来创建良好的,可扩展和可维护的代码是我的最终优先事项。值得一提的处理器类有时做其他事情不仅仅是正则表达式匹配,他们有时预习的串,除去常用词等匹配
干杯任何帮助 比利
您可以结帐[Horde Routes](http://dev.horde.org/routes/)。 –
你在想这个。您的贪婪问题可以通过将数组从最贪婪到最贪婪的顺序轻松解决,并且您的正则表达式都可以在一个类中。我没有看到比这更直接或更干净的方法。 –