0

インライン スタイルが含まれている場合に span タグを見つけることができる正規表現を作成するには、少し助けが必要です。

これまでのところ、インラインスタイルのスパンタグを見つける] style=[\"'][^\"'] [\"']*|/)?> を取得しました。スパンタグがある場合にのみ検出できますインライン スタイルが含まれていますが、一致する終了スパン タグは含まれていません サンプル テキストで検出されたすべての内容を示すスクリーンショットを参照してくださいここに画像の説明を入力

スクリーンショットを見るとわかるように、最初に検出されるのは "" です。これは望ましくありません。span タグとそれに対応する end span タグにインライン スタイルが存在する場合にのみ機能させたいと考えています。

誰かが私が望むものを得るために私が行う必要がある変更を手伝ってもらえますか?

ここでの考え方は、インライン スタイルが存在する場合にのみタグを削除しようとしていますが、クラスを持つスパン タグがあれば問題ありません。

4

1 に答える 1

2

ソープボックス

特定のケースに一致するように正規表現を作成することはできますが、これが HTML 解析であることを考えると、正規表現によって検出されない多くのエッジ ケースが存在する可能性があります。DOM を使用するか、HTML Agility (無料)のような製品を使用するのが最善です。

でも

試合をキャプチャする基本的な必要がある場合は、次を試すことができます。

((<span\b[^>]*\s\bstyle=(["'])([^"]*)\3[^>]*>)(.*?)</span>)

次のグループにデータを入力しています。

  1. 開始タグから終了タグまでの文字列全体を取得します
  2. 開始タグ全体を取得します
  3. スタイル値の開き一重/二重引用符を取得します。これはおそらく正規表現の外では役に立たないでしょうが、Ref 1 の値文字列の最後にある正しい終了 qoute を確実にキャプチャするために使用しています。
  4. スタイルのキー/値セットで見つかった値を取得します
  5. span タグ内のすべての文字を取得します。

ネストされたスパンタグがある場合、これは壊れることに注意してください。 ここに画像の説明を入力

ここに画像の説明を入力

于 2013-05-15T13:47:09.483 に答える