3

SQL クエリのために、HTML 文字列を正規表現で匿名化しようとしています。

https://regex101.com/r/QWt1E1/1

(?<!\<)[^<>\s](?!\>)
<p><em>Hi [User</em></p>
<p><em>Tack f&ouml;r visat intresse.</em></p>
<p><em>Good luck!</em><em>&nbsp;</em></p>
<p><em>Sincerely</em></p>
<p><em>nn nnnnn</nm></p>
<p><em>nnnn nnnnnnnn nnnnn nnnnnnnnn</nm></p>
<p><em>nnnn nnnnn</nm><em>nnnnnn</nm></p>
<p><em>nnnnnnnnn</nm></p>

計画は、<> 内にないすべての文字を . に置き換えることでしたn。ほとんど機能しますが、私の例ではein を置き換え</em>ます。それを修正する理由と方法がわかりません。

例の を置き換えないように正規表現を調整するにはどうすればよいeですか?

4

1 に答える 1

5

現在の位置の後に他の山括弧の前にa が続かないことを確認するため[^<>]*>の だけではなく、の否定先読み(これは、現在タグ内にいることを示すため)。>>

これは、後読みを削除できることも意味します。

[^<>\s](?![^<>]*>)
          ^^^^^^

https://regex101.com/r/QWt1E1/3

それでも、可能であれば、HTML パーサーを使用して HTML を解析する方がよいでしょう。

于 2019-05-29T08:54:19.957 に答える