如何删除空白空间后面的所有内容?

问题描述:

如何删除空白处的所有内容。我有一个日期,如:10.10.2010 18:34年和18之间的空格。我只需要字符串的第一部分(仅10.10.2010)。所以我试图使用preg_replace删除空白后面的所有内容,但它不起作用。我的表情必须如何?如何删除空白空间后面的所有内容?

谢谢你的帮助! phpheini

+0

什么是“空的空间”? :P – Kissaki 2011-02-18 01:02:45

+0

为什么是正则表达式?一个“分裂”会更有效率。或者甚至是findChar,然后是“substring”,效率更高。 – Kissaki 2011-02-18 01:03:37

根据您的简单要求,而不是一个完整的正则表达式的解决方案去,你可以简单地标记化利用strtok()

$datePart = strtok($dateString, ' '); 

编辑字符串:唯一的原因,我可以看到涉及到正则表达式会在提取部件的同时验证日期时间字符串。例如

if (preg_match('/(\d{1,2}\.\d{1,2}\.\d{4}) (\d{1,2}:\d{2})/', $dateTimeString, $parts)) { 
    $date = $parts[1]; 
    $time = $parts[2]; 
} else { 
    throw new Exception('Invalid date-time string format'); 
} 
+0

+1这比使用正则表达式要好得多。 – alex 2011-02-18 01:07:03

$str = '10.10.2010 18:34'; 

$str = preg_replace('/\s.*?$/', '', $str); 

var_dump($str); // string(10) "10.10.2010" 

CodePad

因为Phil Brown states,然而,使用类似strtok()这样的简单任务要比这样(比较答案和它是显而易见的)好得多。

+0

谢谢!很多不同的方法来实现这个... – phpheini 2011-02-18 01:17:49

如果你有信心的格式:

$date = strstr('10.10.2010 18:34', ' ', true); // requires PHP 5.3.0 or greater