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 に答える