私はまだvim正規表現構文に慣れていません。私はこのコードを持っています:
rename_column :keywords, :textline_two_id_4, :textline_two_id_4
VIMの正規表現構文で最後のIDを正の先読みと一致させたいのですが。
どうしますか?
\id@=_\d$
これは動作しません。
このPerl構文は機能します:
id(?=_\d$)
編集-答え:
/id\(_\d$\)\@=
誰かが構文を説明できますか?
Vimのヘルプを確認しても、説明することはあまりありません:(:h \@=
)
\@= Matches the preceding atom with zero width. {not in Vi}
Like "(?=pattern)" in Perl.
Example matches
foo\(bar\)\@= "foo" in "foobar"
foo\(bar\)\@=foo nothing
これは最後のIDと一致する必要があります。
/id\(_\d$\)\@=
「非常に魔法」でいくつかのバックスラッシュを保存します。
/\vid(_\d$)@=
実際には、vimの\zs \ze
を使用する方が簡単に見えます。
id\ze_\d$