次のような再帰的な html テキストがあります。
string html = "<input id=\"txt0\" value=\"hello\"></input>some undefined text<input id=\"txt1\" value=\"world\"></input>";
これは n 回繰り返すことができます (例では n=2) が、n は未知の変数です。
'value' 属性内のすべてのテキスト ('hello' と 'world' の例) を、正規表現を使用して配列内のテキストに置き換えたいと考えています。
Regex rg = new Regex(which pattern?, RegexOptions.IgnoreCase);
int count= rg.Split(html).Length - 1; // in the example count = 2
for (int i = 0; i < count; i++)
{
html= rg.Replace(html, @"value=""" + myarray[i] + @""">", 1);
}
私の問題は、これらの置換を行うための正しい正規表現パターンが見つからないことです。
次のようなものを使用する場合:
Regex rg = new Regex(@"value="".*""", RegexOptions.IgnoreCase);
int count= rg.Split(html).Length - 1;
for (int i = 0; i < count; i++)
{
html= rg.Replace(html, @"value=""" + myarray[i] + @"""", 1);
}
私はhtmlのように取得します
<input id="txt0" value="lorem ipsum"></input>
パターンの .* には余分な文字が含まれているため、次まで停止する必要があります
'<input'
発生。
結果は次のようになります。
<input id="txt0" value="lorem ipsum"></input>some undefined text<input id="txt1" value="another text"></input>
提案や助けをいただければ幸いです。ありがとう!