假设您在文件中有以下内容:
<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这个词
再次感谢!
我非常感谢!
答案 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>
将匹配第一行但不匹配其他两行。
我希望我猜对了你的要求是什么。只要此属性不包含字符串script
或src
,此正则表达式就会将.min.
标记与任何sooper
属性匹配。
请注意,使用正则表达式匹配HTML和其他非常规语言最多是脆弱的,最坏的情况会导致疯狂。
答案 2 :(得分:0)
您没有指定正则表达式引擎。
在我看来,最好的方法是在文件名中使用捕获组来指定jquery版本:
jquery([a-zA-Z0-9-.]+).js
第一组将产生你需要区分的部分。
现在要做的就是检查min
或sooper
子串的字符串。