【问题标题】:Regex Capturing Javascript.js in cshtml file正则表达式在 cshtml 文件中捕获 Javascript.js
【发布时间】:2012-09-25 16:59:56
【问题描述】:

我看了,最接近的答案是capturing filename from url without extension

所以我有这个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>

提前感谢您的帮助。

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

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

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

    这仍然会在开头包含/,但这应该没问题。

    【讨论】:

      【解决方案2】:

      只想添加以下组合即可:

      所以我有一个带有一些脚本标签的 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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-02
        • 1970-01-01
        • 1970-01-01
        • 2015-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多