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

发布于 2024-10-18 11:39:16 字数 171 浏览 3 评论 0原文

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

感谢您的帮助! phpheini

how can I delete everything that is behind an empty space. I have a date like: 10.10.2010 18:34 with an empty space between the year and the 18. I only need the first part of the string (only 10.10.2010). So I tried to use preg_replace to remove everything behind the empty space, but it doesnt work. How would my expression have to be?

Thank you for your help!
phpheini

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

空心空情空意 2024-10-25 11:39:16

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

Based on your simple requirements, rather than going with a full regex solution, you can simply tokenize the string using strtok()

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

Edit: The only reason I could see to involve regular expressions would be to validate the date-time string at the same time as extracting parts. For example

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');
}
君勿笑 2024-10-25 11:39:16

如果您对格式有信心:

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

If you're confident of the formatting:

$date = strstr('10.10.2010 18:34', ' ', true); // requires PHP 5.3.0 or greater
如梦初醒的夏天 2024-10-25 11:39:16
$str = '10.10.2010 18:34';

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

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

键盘

然而,正如 Phil Brown 指出,使用像 strtok() 这样的东西对于像这样的简单任务来说要好得多(比较答案,很明显)。

$str = '10.10.2010 18:34';

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

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

CodePad.

As Phil Brown states, however, using something like strtok() is much better for a simple task like this (compare the answers and it is obvious).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文