0

次のような文字列があります。

<p class="thumbnail"><img src="/media/2905/260x150.gif" alt="260x150"
                          width="260" height="150" rel="260,150" /></p>

変数は、画像、src、alt タグ、幅などです。これらはすべて変更される可能性があります。

<p/>サムネイルの css クラスと の子ノードを持つタグがあるかどうかに一致する正規表現を作成しようとしています<img/>。その場合は、文字列を次のように置き換えます。

<p><img class="thumbnail" src="/media/2905/260x150.gif" alt="260x150"
        width="260" height="150" rel="260,150" /></p>

私は非常に単純に、正規表現で絶望的に失われています! 誰でも指針や解決策を提供できますか?

4

3 に答える 3

1

HTML Agility Packを使用してHTMLを解析し、一致が見つかったら属性を再配置してみてください。あなたの質問の下のコメントに書いたように、実際の HTML を処理する予定がある場合、正規表現でこれを行う機会はありません。ブラウザーは、壊れた HTML (終了タグの欠落)、無効なタグなど、正規表現が詰まる可能性を許容します。

于 2013-06-10T14:45:05.333 に答える
-1

短い答えは、できないということです。長い答えはBartdude のコメントにあります。その背後にある理論については、この SO の質問を参照してください。

正規表現を使用して HTML/XML を解析できない理由: 素人の言葉での正式な説明

非常に特定の範囲で機能するいくつかのことを試すことができます。しかし、その道をたどると、プロジェクトが大きくなればなるほど、ソリューションのコストが (無駄な労力で) 高くなり、最終的に壁にぶつかってそれを乗り越えることができなくなります。

コードの残りの部分を確認していないので、私の唯一の提案は、これらの画像やその他のタグを可能な限りサーバー コントロールにすることです。そうすれば、それらを C# コードの変数として使用し、OOP ロジックをタグに適用できます。理想的ではありませんが、適切な解決策に近づきます。

于 2013-06-10T14:43:04.683 に答える