复杂的正则表达式... AND OR,否定

时间:2016-10-14 14:09:43

标签: regex total-commander

我想通过Total Commander中的内容搜索文件,所以我想创建一个正则表达式,但我找不到任何可以解释它的手册。我的情况是我需要这样的东西:

fileContains("<html>") && fileContains("{myVariable1}") && fileNotContains("<script>")

我可以写cca:

(<html>)+
({myVariable1})+
(<script>){0} ... but this does not work for me

我不能把它们放在一起。请问有什么想法吗?或者你有一个很好的正则表达式解释的链接?

1 个答案:

答案 0 :(得分:0)

试试这个regex

(?=.*\{myVariable1\})(?=.*<html>)(?!.*<script>)

它连续只有3个前瞻。其中一个是消极的前瞻。注意&#34;单行&#34;用于启用“点”匹配换行符的修饰符&#39;。

编辑(每条评论):我猜Total Commander的正则表达式引擎根本不支持外观。虽然你可以将两个积极的前瞻组合成一个等同的消费&#39;模式与这种未经测试的正则表达式:(.*(\{myVariable1\}|<html>)){2},你不能包括“否定搜索”#39;在一个正则表达式中,除非你有一个合法的正则表达式引擎。

您可以尝试this Total Commander regex plug-in

  

支持Unicode的RegEx内容插件 - 基于Perl   兼容的正则表达式(PCRE)库。这个插件可能   替换TC的RegEx引擎获取文件内容