タグ内のスペースによって破損した HTML があり、それを再度有効にしたいと考えています。例:
< div class='test' >1 > 0 は < b >true b>、リンゴ >>>バナナ< / div >
は有効な HTML に変換される必要があり、レンダリングされると次のものが生成されることが期待されます:
1 > 0 は true とリンゴ>>> バナナ
これにはいくつかの正規表現が必要になる場合がありますが、問題ありません いくつかのことがあります:>
または >< 内のスペースの前後にあるテキストは変更しないでください (例: ;1) > 0は、
1>0
に圧縮されるのではなく、保持される必要があります。 <\s?\/\s*
これにより、部分的に b> div >
が < code> に修正されます。 ;
たとえば、思い切ったアプローチを取ることもできますが、そうするとラベル名自体ではなく、ラベル テキスト部分内のコードも壊れてしまいます
あなたが投稿したものと同じように破損したドキュメントを保存する合理的な方法はありませんが、テキスト内の
リーリー# および類似の文字を関連するエンティティに置き換えると仮定します。例:
> ;
の場合、受け入れたいドキュメントを、残りを処理するDomDocumentなどの適切なライブラリに入れることができます。出力:
リーリー次の正規表現も有効です:
HTMLタグ内の有効部分を4つに分割し、残りの部分(スペース)をそれらに置き換えます。
Regex101 デモ
/(]*\S)\s*(>)/g
( - 開始山かっこをキャプチャします (セクション 1)
\s*
- 任意の空白文字と一致します(\/?)
- オプションのバックスラッシュのキャプチャ (パート 2)\s*
- バックスラッシュの後の任意のスペースと一致します([^]*\S)
- 末尾のスペースなしでタグ内のコンテンツをキャプチャします (セクション 3)\s*
- コンテンツの後および閉じ山括弧前のスペースと一致します(>)
- 直角括弧のキャプチャ (セクション 4)