无法使用preg_replace删除空格并替换其他符号

时间:2016-10-28 14:06:55

标签: php regex preg-replace

我的日期格式YYYY-MM-DD HH-MM-SS是我数据库中的字符串

我想要做的是删除破折号和其他超额和空白。

我在下面尝试了这个;

$date = preg_replace('/\s+-|:/', null, $row['acctstarttime']);

//also tried this
$date = preg_replace('/\s+-|:/', '', $row['acctstarttime']);

这根本不起作用。我用下面的方法解决了这个问题

$date = str_replace(' ', '', preg_replace('/-|:/', null, $row['acctstarttime']));

我认为这不是一个很好的方法,所以我怎样才能删除空格,同时只删除-/:等其他符号使用preg_replace

提前致谢。

2 个答案:

答案 0 :(得分:2)

如果您只想保留数字,请使用\D - 不是数字

str_replace(' ', '', preg_replace('\D', null, $row['acctstarttime']));

如果您希望保留月份名称的月数使用\W - 不是字母(字母是字母,数字和'_')

str_replace(' ', '', preg_replace('\D', null, $row['acctstarttime']));

答案 1 :(得分:0)

你可以试试这个:

[-, \/:]

Explanation

PHP示例

<?php

$re = '/[-, \/:]/';
$str = '2000-11-11 12-12-13';
$subst = '';

$result = preg_replace($re, $subst, $str);

echo $result;


?>