$txt_unclean = trim(nl2br($_POST['txt_content']));
$txt_content = strip_tags($txt_unclean, '<b><i><u><br>');
$txt_br_replace = preg_replace("/[^a-zA-Z0-9 \!\,\?\.\n s]/", '', preg_replace("!(<br(?:\s?/)?>\s*){2,}!s", "<br />\n<br />\n", $txt_content));
わかった。したがって、改行ごとに 2 つの改行のみを許可しています。たとえば、9 つの改行がある場合、2 つの改行に置き換えられます。それだけで、私は成功した結果を得ることができます。ただし、問題は、この正規表現を使用して単語をクリーンアップしたい場合です。/[^a-zA-Z0-9 \!\,\?\.\n s]/
基本的にすべての改行を削除しますが、単語をクリーンアップします。では、改行を保持するにはどうすればよいでしょうか。
例:これが欲しい:
StackOverflow is amazing@$#@#$#@#@#@!#@@!
I KNOW!@$!##$$#!!#$@(*$09@*
私が書いた正規表現によると、これは出力になるはずです:
StackOverflow is amazing!!
I KNOW!!!!09