我有这种字符串:
DURATION : 00:23:55.060000000
我想将其转换为:
00:23:55.060000000
请注意,在DURATION
之后,它有很多空格。
修改
看来我让你心烦意乱,伙计们。 :d
我做了这个但没有工作:
preg_replace('/^Duration,\s+/', '', $result[20])
如何使用php
?
答案 0 :(得分:2)
你的正则表达式搞砸了。你正在寻找大写的东西,你的正则表达式是小写的。并且有一个逗号。
因此,如果您重写like:
preg_replace('/^Duration\s+: /i', '', $result[20])
(正则表达式后的i
修饰符表示不区分大小写)
或:
preg_replace('/^DURATION\s+: /', '', $result[20])
它会起作用。
但大多数情况下,您似乎想要抓住时间戳,而忽视其余的时间戳。对我来说,如果你的正则表达式反映了这一点,那么代码会更加清晰。
E.g.:
if (preg_match("|(?<timestamp>\d\d:\d\d\:\d\d\.\d{9})|", $string, $matches)) {
echo $matches['timestamp'];
}
答案 1 :(得分:0)
解决方案:
$duration = substr($duration, strpos($duration, (":")) + 2);
答案 2 :(得分:-1)
我希望这对有需要的人有用:
preg_replace('/duration|^(.*?):|\s/i', '', $result[20]);
代码说明:
首先,剥去持续时间,然后是第一个冒号:
最后所有空格。
将i
放在正则表达式的末尾,以声明搜索是敏感的。