冗長な(2つ以上の)スペースを削除するが改行を維持する正規表現を探しています。PHP Regexp - 冗長なスペースを削除しても改行を残す
どのようにすれば効果がありますか?
ありがとうございました!
冗長な(2つ以上の)スペースを削除するが改行を維持する正規表現を探しています。PHP Regexp - 冗長なスペースを削除しても改行を残す
どのようにすれば効果がありますか?
ありがとうございました!
preg_replace("/[ ]+/", " ", $myval);
を
$str = "a bc
d e f";
$str = preg_replace('/[^\S\n]+/', ' ', $str);
echo $str,"\n";
出力:
a bc
d e f
文字列に単一のスペースを持つすべての水平空白記号を置き換えるために、あなたは\h
はPCRE固有の速記文字クラスのマッチングである
preg_replace('/\h+/', ' ', $str);
を使用することができますall characters that \p{Zs}
matchesプラスU+0009
(水平タブ)。
\h
の後の数値限定子+
は、1つ以上の水平空白記号の一致を可能にします。 2回のまたはそれ以上の出現に一致するように、制限量指定子を使用します。
preg_replace('/\h{2,}/', ' ', $str);
実際にあなたのコードは、このREGは、すべてのスペースやタブを削除し、すべてのスペースとタブ –
を削除します。 – MDI
最初の質問は、すべてのスペースの削除を求めました。正規表現を調整して余分なスペースだけを取り除き、1つのスペースに置き換えます。 – Spliffster