如何删除空白背后的一切?

时间:2011-02-18 00:59:16

标签: php regex preg-replace

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

感谢您的帮助! phpheini

3 个答案:

答案 0 :(得分:3)

根据您的简单要求,您可以使用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');
}

答案 1 :(得分:1)

如果您对格式化有信心:

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

答案 2 :(得分:0)

$str = '10.10.2010 18:34';

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

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

CodePad

作为Phil Brown states,使用像strtok()之类的东西对于像这样的简单任务来说要好得多(比较答案很明显)。