1

Visual Studio 2010/2012 で、Razor と混同された JavaScript を含む可能性のあるすべてのスクリプト タグを見つけるにはどうすればよいですか?

これは一致するはずです:

<script>
    var hola = '@serverVariable';
    alert(hola);
</script>

<script>
    var somenumber = @Int32.MaxValue;
    alert(somenumber );
</script>

<script>        
    @if(someFlag)
    {           
       @:alert('hello');
    }else{
       @:alert('bye');
    }
</script>

これは一致すべきではありません:

<script>
    @* A valid comment *@
    alert(hola);
</script>

<script>
    alert('hola  @@');
</script>

<script>
    alert('hola');
</script>

これをRegexpとして試していますが、VisualStudioはすべての参照を見つけるのに何時間もかかります.再帰的であり、再帰を破る方法がわかりません.

<script{1}([\s\r\n]|.)*?[^*@]@[^*@]([\s\r\n]|.)*?</script{1}
4

1 に答える 1

0

以下はうまくいくようです。<script タグ間は no と仮定します。

\<script\>([^<]|\n)*[^*@]\@[^*@]([^<]|\n)*\</script\>

@VS 正規表現でエスケープする必要があるようです -スペース文字に一致することがあります。
は、単語の開始/終了を示すため、エスケープする必要があります。<>

Notepad++ などのより優れた正規表現エンジンを備えたテキスト エディターを使用するか、アドインを試すことをお勧めします: NET Regular Expressions Find and Replace Add-In for Visual Studio 2008

于 2013-03-07T16:34:48.443 に答える