0

我有包含电影运行时间的字符串:

1 h 19 min

现在我希望它看起来像这样:

1h 19m

我知道这实际上应该很容易,但我只是找不到解决方案。

4

4 回答 4

6
$str = str_replace(array(' h', ' min'), array('h', 'm'), $str);
于 2012-06-13T08:27:12.053 回答
5
$runtime="1 h 19 min";
$runtime=str_replace(" h","h",$runtime);
$runtime=str_replace(" min","m",$runtime);
于 2012-06-13T08:25:32.720 回答
4

您可以使用正则表达式删除数字和非数字之间的所有空格:

$str = preg_replace('/(?<=\d) *(?=\D)/', '', $str);

看到它在行动

更新:不幸的是,这不会将“min”变成“m”,我实际上并没有注意到这是需要的。

鉴于此,str_replace具有诸如bsdnoobz 之类的数组的解决方案确实是唯一明智的方法。但只是为了好玩:

$str = preg_replace('/(?<=\d) *(\D)\S*/', '$1', $str);

看到它在行动

于 2012-06-13T08:25:24.043 回答
0

最简单的方法

$runtime = "1 h 19 min";

$runtime = str_replace(" h", "h", $runtime);

$runtime = str_replace(" min", "min", $runtime);

于 2012-06-13T08:27:13.170 回答