2011-01-27 16 views

答えて

9

preg_replace("/[ ]+/", " ", $myval); 
+0

実際にあなたのコードは、このREGは、すべてのスペースやタブを削除し、すべてのスペースとタブ –

+0

を削除します。 – MDI

+0

最初の質問は、すべてのスペースの削除を求めました。正規表現を調整して余分なスペースだけを取り除き、1つのスペースに置き換えます。 – Spliffster

3

は2つの鉱石以上のスペースを削除しスペースのみ削除し、スペースやタブ

preg_replace("/[ \t]+/", " ", $myval); 

を削除します。これは、スペースですべての "空白" が、改行に置き換えられます

preg_replace("/[ ]{2,}/", " ", $myval); 
+0

複数のスペースがある場合はすべてのスペースを削除しない限り、それらを1つのスペースに置き換えることができます。 – MatsLindh

+0

投稿を編集しました – MDI

2

$str = "a bc 


d e  f"; 
$str = preg_replace('/[^\S\n]+/', ' ', $str); 
echo $str,"\n"; 

出力:

a bc 


d e f 
0

文字列に単一のスペースを持つすべての水平空白記号を置き換えるために、あなたは\hはPCRE固有の速記文字クラスのマッチングである

preg_replace('/\h+/', ' ', $str); 

を使用することができますall characters that \p{Zs} matchesプラスU+0009(水平タブ)。

\hの後の数値限定子+は、1つ以上の水平空白記号の一致を可能にします。 2回のまたはそれ以上の出現に一致するように、制限量指定子を使用します。

preg_replace('/\h{2,}/', ' ', $str); 
関連する問題