は、私はいくつかのエントリを持つ小さなJSONファイルを持って、ここにセクションです:私はすべての値の前に「\ U25」を追加する必要が実現Vimの代替コマンドと正規表現
"i":{
"normale":"3c",
"bold":"4b",
"doppio":"6c"},
"is":{
"normale":"2c",
"bold":"33",
"doppio":"66"},
ので、私
::%s:\("\)\(\d\d"\)\|\("\)\(\d\w"\):"\\u25\2
アイデアは「DD」または「DW」のいずれかを検索し、"\u25
rest.Thisを保持したままで最初の二重引用符を置換することである
は結果である:このコマンドを試してみました
"i":{
"normale":"\u25,
"bold":"\u25,
"doppio":"\u25},
"is":{
"normale":"\u25,
"bold":"\u2533",
"doppio":"\u2566"},
一致する文字列が2桁のみの場合、コマンドは正しく動作します。最初の二重引用符(最初のグループ)が置換され、2番目のグループはそのまま残ります。 しかし、一致する文字列に数字と文字が含まれる場合、文字列全体を置換して2番目のグループを無視するようです。 2つのパターンは同じですが、\w
を除いて全く同じです。何が起こっていますか?
なるほど!ニースとクリーン、私はそれを実現しませんでした。だから、おそらく私のコマンドがうまくいかなかったのは、 "dw"は "次の文字を持つ数字"の代わりに16進文字であると認識されているからです。 –
'\ d'は10進数字と一致し、' \ x'は16進数字と一致します。 –