对照几个选项检查文本



我对regex非常生疏,花了大约2个小时试图做一些应该非常简单的事情。

基本上,我想要一个regex表达式,它可以检查一堆文件名(最终目标是排除不相关的文件名——这是为了使用Cassette中的FileSearch类来排除不必要的javascipt文件)。

到目前为止,我的表述是:

(^.+.+min.js$) | (^Microsoft.$) | (^.+.+min.js$) | (^.+vsdoc.js$)

我试图匹配的文本(文件名)是

jquery-ui-i18n.min.js

这在Espresso中有效,但当我实际针对一些.NET代码运行它时,没有匹配项:

    static void Main(string[] args)
{
  System.Text.RegularExpressions.Regex reg =
    new System.Text.RegularExpressions.Regex(@"(^.+.+min.js$) | (^Microsoft.$) | (^.+.+min.js$) | (^.+vsdoc.js$)", System.Text.RegularExpressions.RegexOptions.None);
  if (reg.IsMatch("jquery-ui-i18n.min.js"))
    Console.WriteLine("match");
  else
    Console.WriteLine("no match");
  Console.Read();
}

有没有任何regex传奇人物可以向我展示光芒!?

我会使用

(.min.js|Microsoft.|.min.js|vsdoc.js)$

您的正则表达式有许多错误

(^.+.+min.js$) | (^Microsoft.$) | (^.+.+min.js$) | (^.+vsdoc.js$)
 -           -   -                      
 |           |   |->space would make ^ meaningless unless you use IgnorePatternWhiteSpace option 
 |           |->instead of repeating $ in each group you can keep it outside all the groups
 |->^ is not required because you only want to check the end

最新更新