【问题标题】:How to remove everything behind the empty space?如何删除空白空间后面的所有内容?
【发布时间】:2011-02-18 00:59:16
【问题描述】:

如何删除空白区域后面的所有内容。我有一个日期,例如:10.10.2010 18:34,年份和 18 之间有一个空格。我只需要字符串的第一部分(仅 10.10.2010)。所以我尝试使用 preg_replace 删除空白空间后面的所有内容,但它不起作用。我的表情应该是怎样的?

感谢您的帮助! phpheini

【问题讨论】:

  • 为什么是正则表达式? split 会更有效率。甚至 findChar 然后substring,效率更高。

标签: php regex preg-replace


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    如果您对格式有信心:

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

    【讨论】:

      【解决方案3】:
      $str = '10.10.2010 18:34';
      
      $str = preg_replace('/\s.*?$/', '', $str);
      
      var_dump($str); // string(10) "10.10.2010"
      

      CodePad.

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-12
        • 2018-08-14
        • 2012-08-24
        • 1970-01-01
        • 1970-01-01
        • 2017-12-27
        • 1970-01-01
        • 2019-04-23
        相关资源
        最近更新 更多