1

手動で編集しているxmlファイルがあります。xml ファイルの構造は次のとおりです。

<order>
    <id>1</field>
    <current_execution_status>REGENERATED</field>
    <generated_time>2012-12-01 17:55:00</field>
    <generation_status>UNKNOWN</field>
    <priority>0</field>
    <type>NORMAL</field>
    <assigned_vehicle>1</field>
    <assigned_drop_location>1</field>
    <assigned_pick_location>1</field>
    <generation_by_user_name>ABC</field>
    <material>1</field>
    <order_cancel_detail />
    <order_drop_detail />
    <order_pick_detail />
</order>

fieldの各出現を、値の前にあるそれぞれの「フィールド名」に置き換えたいと思いました。たとえば、このように、 など<id>1</field>になるはずです。しかし、これに対する私の正規表現を取得できません。<id>1</id><current_execution_status>REGENERATED</current_execution_status>vim

4

2 に答える 2

4
:%s/<\([^<>]*\)>\([^<>]*\)<\/field>/<\1>\2<\/\1>/
于 2012-12-12T07:49:56.143 に答える
2

これはどう:

:%s/<\(.*\)>\(.*\)<\/field>$/<\1>\2<\/\1>/

Vim の正規表現に関する注意事項:

  1. キャプチャ/グループ化は\(、'(', ')' ではなく and ')' で行われます。('(', ')') は、開き/閉じ括弧の実際の文字を意味します。
  2. キャプチャーメモリーは\1などです\2
  3. /いつものようにエスケープする必要があります\/
于 2012-12-12T07:48:19.630 に答える