8

Vim で使用する適切な検索/置換正規表現を作成するのに問題があります。

ここにいくつかのSQLがあります:

select avg(field_name1), avg(field_name2), avg(field_name3) from a_table

おっと、結果にエイリアスを付けるのを忘れていました:

select avg(field_name1) field_name1,
avg(field_name2) field_name2, avg(field_name3) field_name3 from a_table

[a-z]\+_[a-z]\+したがって、Vim では、任意の括弧内に一致する便利な検索と置換があると確信していますが、一致全体の後にそのトークンを配置する方法がわかりません

4

2 に答える 2

16

次のことを試してください。

:s/(\(.*\))/(\1) \1/g
于 2012-09-05T17:46:10.640 に答える
6

置換/置換で使用するテキストを周囲の でグループ化し、、 など\(\)を使用して置換でこれらの後方参照を参照します。\1\2

[:alnum:]英数字の照合に使用:

:s/(\([[:alnum:]]\+_[[:alnum:]]\+\))/(\1) \1/g

いずれかの正規表現をファイル全体に適用するには、次を使用します。

:%s/(\([[:alnum:]]\+_[[:alnum:]]\+\))/(\1) \1/g

:help \1後方参照の使用の詳細については、も参照してください。

于 2012-09-05T17:51:16.390 に答える