-1

そこに終了時間が含まれる XML ドキュメントがあり、これからフォーマットを変更する必要があります。

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

これに

end="00:09.02">

つまり、基本的に最初の 2 つの数字とコロンが削除され、最後のコロンがピリオドに置き換えられます。

何百もの変更があり、何らかのスクリプトを使用してそれらすべてを編集する方法を見つけようとしていましたが、何か提案はありますか?

元の行は次のとおりです。

    <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

1つの方法は正規表現です。

正規表現:/(?: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 に答える