非min文件的正则表达式,不包含单词

时间:2010-07-22 19:00:35

标签: visual-studio regex

假设您在文件中有以下内容:

<script src="../../Public/Javascript/jquery-1.4.1.js" type="text/javascript"></script>
<script src="../../Public/Javascript/jquery.easing-sooper.js" type="text/javascript"></script>
<script src="../../Public/Javascript/jquery.easing.min.js" type="text/javascript"></script>

我正在寻找一个正则表达式来找到第一行(没有缩小并且不包含sooper这个词)。 我将在Visual Studio中将其用作FYI。

对不起,我需要更具体一点。我将在Visual Studio中使用它,如在control + shift + F中,然后单击使用正则表达式查找,在项目中找到我所引用的javascript文件,这些文件未被缩小。我需要异常b / c一些可以不被缩小。

我正在寻找以下行:匹配:
-have .js在他们的某个地方 - 但不是.min.js
- 而不是sooper这个词

再次感谢!

我非常感谢!

3 个答案:

答案 0 :(得分:1)

试试这个:

\<script src="(~(<(min|sooper)>)[^"])+" type="text/javascript"\>\</script\>

VS正则表达式风味与我们大多数人习惯的Perl衍生的风味只有相似之处。值得注意的是,否定前瞻是~(...)<>是单词边界(开始和结束),您必须将它们转义为与文字尖括号匹配。

编辑:此版本专门针对以.js结尾但未包含min.js的文件名。

\<script src="(~(<(min\.js|sooper)>)[^"])+\.js" type="text/javascript"\>\</script\>

答案 1 :(得分:0)

<script src="(?:(?!\.min\.|\bsooper\b)[^"])+" type="text/javascript"></script>

将匹配第一行但不匹配其他两行。

我希望我猜对了你的要求是什么。只要此属性不包含字符串scriptsrc,此正则表达式就会将.min.标记与任何sooper属性匹配。

请注意,使用正则表达式匹配HTML和其他非常规语言最多是脆弱的,最坏的情况会导致疯狂。

答案 2 :(得分:0)

您没有指定正则表达式引擎。

在我看来,最好的方法是在文件名中使用捕获组来指定jquery版本:

jquery([a-zA-Z0-9-.]+).js 

第一组将产生你需要区分的部分。

现在要做的就是检查minsooper子串的字符串。