如何进行正则表达式替换,在日期字符串中添加字符?

时间:2008-10-10 13:55:16

标签: php regex

对于PHP

我有一个日期,我想要换行。

我有$ date ='2008-09-28 9:19 pm'; 我需要用br代替第一个空间  成为

2008-09-28<br>9:19 pm

如果它不是PM之前的第二个空格,我只是str_replace()它。

5 个答案:

答案 0 :(得分:0)

s/ /<br\/>/应该这样做。虽然PHP正则表达式可能会贪婪并替换所有空格。

修改

我支持Ben Hoffstein的PHP解决方案。在可能的情况下,避免使用正则表达式,因为它几乎总是具有意想不到的副作用。

答案 1 :(得分:0)

$date = '2008-09-28 9:19 pm';
$result = preg_replace('/(\d{4}-\d{2}-\d{2}) (.*)/', '$1<br>$2', $date);

答案 2 :(得分:0)

$date = preg_replace('/ /', '<br>', $date, 1);

答案 3 :(得分:0)

如果您希望正则表达式匹配模式并返回两个部分,则可以使用以下内容。但是,考虑到您正在做的所有事情只是替换1个空格,请尝试在正则表达式后我建议的str_replace_once。正则表达式用于复杂的解析而不是浪费使用,例如替换一个空格(没有违反意图)。

请注意,以下是浏览器代码,因此请勿尝试逐字使用。只是在输入错误的情况下。

$regex = '/([\d]{4}-[\d]{2}-[\d]{2}) ([\d]{1,2}:[\d]{2} (am|pm))/';
$match = preg_match($regex, '2008-09-28 9:19 pm');
print $match[1];  // Returns 2008-09-28
print $match[2];  // Returns 9:19 pm

// Or replace:
preg_replace($regex, '$1<br>$2', $date);

我建议以下,更快的机制。有关函数this post,请参阅str_replace_once()

str_replace_once(' ', '<br>', $date);

答案 4 :(得分:0)

另一种方法是

,这是更快但更多的代码
$date = substr($date, 0, 10) . '<br>' . substr($date, 11);
相关问题