-1

私はこのテキストを持っています:

    <script type="text/javascript" id="wordpress_grazit_script">        
            var dbnurls = [];
            var dbnanchors = [];
            dbnurls.push('url');
            dbnanchors.push('anchor');
            var script = document.createElement("script");
            script.setAttribute("src", dbn_protocol+"path to js");
            script.setAttribute("type", "text/javascript");
            script.setAttribute("id", "grazit_script");
            document.getElementById("my-id").parentNode.appendChild(script);
    </script>

dbn_protocol+"path to js" を別のものに置き換える必要があります。

この一致パターンを使用しようとしましたが、最後の ); まで完全に一致します。

    "script\\.setAttribute\\([\"']src[\"'],(.*[^\\);])(\\);)(.*)"

c# .net でこの正規表現が必要であることを特定する必要があります

ありがとうございました

4

4 に答える 4

1

からのみ一致させることができますdbn_protocol(そして@、正規表現を定義するときにシンボルを使用して、一連の二重エスケープを行う必要がありません):

var regex = new Regex(@"dbn_protocol\+""[^""]+""");

イデオネの例

引用符を使用すると、正規表現が を超えて一致するのを防ぐことができpath to jsます。

于 2013-08-30T19:30:44.670 に答える
0

JavaScriptの場合、次のようにすることができます:

var result = yourScriptString.replace(
    /(script\.setAttribute\("src",)(.*)(\))/, 
    " $1'" + someUrl + "'$3");

詳細については、この jsfiddleを参照してください。

于 2013-08-30T13:26:25.967 に答える