我们有一个配置文件,其中包含我们的程序与文件匹配的一组正则表达式,以及在找到匹配项时触发的规则。
因此,如果配置文件包含:
^\d{5}\.bat$|RULE23
^\d{3}\.txt$|RULE45
程序将迭代这些表达式并匹配文件,例如12345.bat触发RULE23以表示移动文件,而321.txt触发规则45以执行该文件上的脚本,但不对1234567.bat执行操作。
理论上一切都很好。实际上,这个配置文件包含100个表达式,可以由很多人编辑。我们有办法检查文件中的这些表达式是否与文件中的另一个表达式重叠(因为这可能是配置错误)?
例如,如果配置文件是:
^\d{5}\.bat$|RULE23
^\d{3}\.txt$|RULE45
\d{1}\.t|RULE50
我们想要运行一些代码,这会检查配置文件并报告
^\d{3}\.txt$|RULE45
\d{1}\.txt|RULE50
重叠,即具有3个数字的文件名,然后.txt将匹配规则45和规则50。
我尝试过在网上搜索,但是如果没有遇到人们匹配正则表达式的问题就很难说出这个问题,而这个问题并非如此。
有关如何主动验证此列表以确保没有可能的模式的任何想法都符合多个规则?