-1

我有一个包含结束时间的 XML 文档,我需要更改格式

end="00:00:09:02">

对此

end="00:09.02">

所以基本上前两个数字和冒号被删除了,最后一个冒号被一个句号代替。

我有数百个要更改,并试图弄清楚如何使用某种脚本来编辑它们,有人有什么建议吗?

这是原始行:

    <p start="00:00:13:23" EndTimecode="00:00:17:02" Title='Let’s start with RIM and
the High Velocity Sector.'/>

这是我需要结束的内容:

    <p begin="00:13.23" end="00:17.02">Let’s start with RIM and
the High Velocity Sector.</p>

由于发现查找和替换是最佳选择,因此我更新了我的问题。

4

1 回答 1

2

一种方法是正则表达式。

正则表达式:/(?:EndTimecode="[0-9]{2}):([0-9]{2}):([0-9]{2}):([0-9]{2})(?:")/

替换字符串:end="$1:$2.$3"

你会像这样使用它:

  1. 读取 xml 文件并将其存储到 var 中(调用它$contents
  2. $contents = preg_replace('/(?:EndTimecode="[0-9]{2}):([0-9]{2}):([0-9]{2}):([0-9]{2})(?:")/', 'end="$1:$2.$3"', $contents);
  3. 使用中的新数据保存回文件$contents

首先创建备份或将其写入新的 tmp 文件!

编辑:见上文。唯一的变化是正则表达式。(?:end改为(?:EndTimecode

Edit2:我希望它们看起来都一样。试试这个

正则表达式:/<p start="[0-9]{2}:([0-9]{2}):([0-9]{2}):([0-9]{2})" EndTimecode="[0-9]{2}:([0-9]{2}):([0-9]{2}):([0-9]{2})"\sTitle='(.+?)'/>/

替换字符串:<p begin="$1:$2.$3" end="$4:$5.$6">$7</p>

于 2012-07-31T18:29:53.033 回答