我知道,有很多類似的問題,你會說,是重複的,但我找不到解決方案! 我需要刪除多個空格,只寫一個空格。在我的代碼中,我寫了'REPLACE'而不是'',只是爲了澄清。這是一些代碼,我已經測試和不工作:刪除多個空格 - PHP沒有找到空格
$string=$data['post_content'];
$filtered1=preg_replace("/[^\S\r\n]+/",'REPLACE',$string);
$filtered2=preg_replace("#[^\S\r\n]+#",'REPLACE',$string);
$filtered3=preg_replace("#[^\S\r\n][^\S\r\n]+#",'REPLACE',$string);
$filtered4=preg_replace('#[^\S\r\n][^\S\r\n]+#','REPLACE',$string);
$filtered5=preg_replace('#!\s+!#', 'REPLACE', $string);
$filtered6=preg_replace("/(?<=\s)\x20|\x20(?=\s)/", "REPLACE", $string);
$filtered7=preg_replace("/([\s])\1+/", "REPLACE", $string);
$filtered8=preg_replace("#[^\S\r\n][^\S\r\n]#",'REPLACE',$string);
$filtered9=preg_replace("'/\s+/'",'REPLACE',$string);
$testing1=str_replace(" ","REPLACE",$string);
$testing2=str_replace("\s",'REPLACE',$string);
$testing3=str_replace(array(' '),'REPLACE',$string);
$testing4=str_replace(' ',"REPLACE",$string);
$testing5=str_replace(" ","REPLACE",$string);
$testing6=str_replace(array(" "),'REPLACE',$string);
$testing7=str_replace(array("\s\s"),'REPLACE',$string);
這是字符串測試:
這是一個測試1 2 3 4 6端
而結果分別爲$filtered1
和$filtered2
:
thisREPLACE isREPLACEaREPLACEtestREPLACE1 REPLACE2 REPLACE3 REPLACE4 REPLACE6 REPLACEend。
對於所有其它的,其結果是:
這是一個測試1 2 3 4 6端
是像PHP沒有找到空間,即使使用explode
是沒有找到雙重空間「」。我使用PHP 5.5.1
,如果你想刪除所有的多個空格,你可以使用'的preg_replace(「/ \ s + /」,」」,$字符串);'(更換所有1個或多個實例空間與單個空間) – bansi 2014-09-21 16:45:55
仍然返回相同的結果:「這是測試1 2 3 4 6結束」 – mgreca 2014-09-21 17:43:30
您的預期輸出是什麼?你想匹配2個空格,你可以使用'preg_replace('/ \ s {2} /','',$ string);' – bansi 2014-09-22 04:00:09