2011-02-01 8 views
0

私はこの形式でデータを持っている:vi(m)で見つけて置き換えてテキストの部分をどのように並べ替えることができますか?

03/18/2010 
03/18/2010 
04/19/2010 

私はそうのように、先頭に、各日付文字列の末尾から年を移動したいと思います:

2010/03/18 
2010/03/18 
2010/04/19 

私は、検索/置換する必要がありますこれを行うパターン。

:%s/'[0-9]\{2\}'\/'[0-9]\{2\}'\/'[0-9]\{4\}'/&3\/&1\/&2/ 

これらの行には何かがありますが、わかりません。このようなアンパサンドを使用する必要があると私は考えました。この検索/置換は可能ですか?もしそうなら、誰かが私を啓発するほど親切でしょうか?

答えて

3

もちろん可能です。

:%s+\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\)+\3/\1/\2+ 

Iは次のように変更された:

  • 代わりに代替コマンドのさまざまな部分の間に分離するスラッシュを使用する、私は+シンボルを使用します。セパレータはスラッシュである必要はありません。 %sの後に置くシンボルは、セパレータになります。これは、パターンにスラッシュを使用する必要があるため便利です。

  • カッコを使用して正規表現内のグループを作成しました。これにより、バックスラッシュとそれに続くグループの番号を使用して、置換パターンのこれらのグループを参照できます。グループは左から右に番号が付けられ、1から始まり、グループ0はマッチ全体です。

+0

これは完全に素晴らしいです、ありがとうございます。私はこれを1時間以上、運が無ければグーグルで見つけました。再度、感謝します。 – Brian

+0

編集がさらにうまくいった。再度、感謝します。 – Brian

関連する問題