1

我看了看,我得到的最接近的答案是从没有扩展名的 url 捕获文件名

所以我有这个cshtml:

<script src="@Url.Content("~/Scripts/javascript.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/javascript2.js")" type="text/javascript"></script>

我尝试使用这个正则表达式:

(?!.+[Ss]cripts+\/)\/+.+\.js

但是,使用 Rad 正则表达式设计器我得到了这个结果

  • /javascript.js
  • /javascript2.js

我怎么能捕捉到这个

  • javascript(不带 .js)
  • javascript2(不带 .js)

然后我将使用替换表达式

$&.min.

得出最终结果

<script src="@Url.Content("~/Scripts/javascript2.min.js")" type="text/javascript"></script>

在此先感谢您的帮助。

4

2 回答 2

0

添加捕获组应该可以完成您想要的:

((?!.+[Ss]cripts+\/)\/+.+)\.js

这仍将包括一/开始的,但这应该没问题。

于 2012-10-04T15:57:34.090 回答
0

只想添加以下组合:

所以我有一个带有一些脚本标签的cshtml文件,如下所示:

<script src="@Url.Content("~/Scripts/javascript.js")" type="text/javascript"></script>

然后我使用正则表达式替换使用 MSbuild 目标作为:

<MSBuild.ExtensionPack.FileSystem.File TaskAction="Replace" RegexPattern="((?!.+[Ss]cripts+\/)\/+.+)\.js" Replacement="$1.min.js" Files="@(CSHTML)" />

那时和那里的替换表达式$1.min.js

导致更换

<script src="@Url.Content("~/Scripts/javascript.min.js")" type="text/javascript"></script>
于 2012-10-05T03:38:09.367 回答