いくつかのhtmlを解析しようとしていますが、いくつかのマージ変数があります。変数は区切られ、%x.
で始まり、%
で終わります。例:%x.VALUE%
私がしようとしているのは、一致全体を「VALUE」だけに置き換えることです。正規表現をデリミタ間の中間に置き換えてください
したがって、%x.VALUE%
はちょうどVALUE
になります。
私は
string input = "aaaaa%nomatch%bbb%x.FOO%ccc%x.BAR%ddddd%%";
string pattern = @"%x.(.*?)%";
string substitute = "$&";
string result = Regex.Replace(input, pattern, substitute);
を使用してMSDNの代替例を使用してみましたし、私は別の置換文字列のカップルでそれを試みたが、どれも働きました。 $&
はそれ自体で置き換えられるので、実際には何もしませんが、マッチ全体をちょうど中間に置き換える方法はわかりません。何らかのネストされた正規表現を使用していますか?
編集:その文字列の場合 、私は結果が
aaaaa%nomatch%bbbFOOcccBARddddd%%
ここ
%x.FOO%
のでx.
を持っていないが、他のBAR
%
に置き換えFOO
と%x.BAR%
に置き換えられますことを期待します彼らは一致しておらず、変更されていません。
その入力に対して期待される出力を与えることはできますか? – Xiaoy312
それには '$ 1'を使います。そして、その点を脱出する。 –
これを試してみてください ""%x [^%] + "; – jdweng