设有两个正则式A和B,各自的规则随机不定,如何判断式A的规则已经全部在式B中?即式B包含式A。否则式B不包含式A。如:
假设:A:m??k
   B:m*k
则式B包含式A。假设:A:l??k
   B:m*k
则式B不包含式A。上面是举例,A和B的规则随机不定。能给个通用算法吗?

解决方案 »

  1.   

    思路没问题啊。我有个工程,可以让客户自定义正则式去作为过滤条件,但每加一条正则式,运行开销就增加不少。考虑到客户录入的正则式难免有所重复定义,所以希望拿个通用算法,使客户录入新式时与旧式对比,若存在重复或包含关系就取消被包含的那条定义,以减少运行开销。
      

  2.   

    正则之间的比较还真的没有考虑过不过倒是有个思路。让用户自定义正则,总有被匹配的对象,被匹配的对象有没有规律?有规律的话,做一些例子和边界放在一个表中。每加入一个正则,就去和表里面的例子进行匹配。如果所有新加入的正则能够匹配的对象,其他正则也能匹配,那么就有重复