php - 从第一个特定字符开始删除所有字符串

时间:2017-01-25 08:15:47

标签: php regex string

我有这种字符串: DURATION : 00:23:55.060000000

我想将其转换为: 00:23:55.060000000

请注意,在DURATION之后,它有很多空格。

修改

看来我让你心烦意乱,伙计们。 :d

我做了这个但没有工作: preg_replace('/^Duration,\s+/', '', $result[20])

如何使用php

3 个答案:

答案 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放在正则表达式的末尾,以声明搜索是敏感的。

相关问题