2013-03-04 97 views
1

我有一个正则表达式和PHP的一个问题,我有这个字符串:剥离空白PHP

Panorama - SPIEGEL ONLINE - Nachrichten                                    Schlagzeilen      Hilfe      RSS      Newsletter      Mobil      Wetter      TV-Programm               Dienstag, 26. Februar 2013         Panorama                                                         NACHRICHTEN                Home                 Politik Deutschland            Ausland                                                 WirtschaftB 

我想去除所有的空间,这是不需要的,因此所有的空格,但一个,这样的话仍然被一个空间隔开。
我写这个正则表达式:

echo trim(preg_replace("/\s+/", " ", $lol)); 

而且我非常接近:

Panorama - SPIEGEL ONLINE - Nachrichten Schlagzeilen Hilfe RSS Newsletter Mobil Wetter TV-Programm Dienstag, 26. Februar 2013 Panorama NACHRICHTEN Home Politik Deutschland Ausland WirtschaftB 

我缺少什么?非常感谢你!

+2

您的代码基本上是正确的,你只是用一种错误的报价。在双引号内,您需要转义反斜杠'\\ s'。 – Barmar 2013-03-04 23:09:23

+0

非常感谢你,并且很抱歉重复!并感谢downvote -.- – 2013-03-04 23:14:43

回答

2

问题是 。这是浏览器中不可分离的空间。使用此:

$string = "Panorama - SPIEGEL ONLINE - Nachrichten                                    Schlagzeilen      Hilfe      RSS      Newsletter      Mobil      Wetter      TV-Programm               Dienstag, 26. Februar 2013         Panorama                                                         NACHRICHTEN                Home                 Politik Deutschland            Ausland                                                 WirtschaftB"; 
$string = str_replace(" "," ",$string); 

echo preg_replace('!\s+!', ' ', $string); 

演示:http://sandbox.onlinephpfunctions.com/code/8c85dcc5ba0c9aa9306125ad5878c02d07fcf452