1

コード内で で始まる関数がいくつかありget_ます: get_num(...),get_str(...)

に変更したいget_*_struct(...)

どういうわけか正規表現を一致させget_*てから、次のようにパターンに従って置き換えることはできますか:

get_num(...)になるget_num_struct(...)get_str(...)なるget_str_struct(...)

理論的な正規表現は で使用されているものとは異なるためUNIX(またはvi、異なるのでしょうか?)、私は常にそれらを理解するのに苦労しています。

viこれは主な作業ツールであるため、エディタで行う必要があります。

ありがとう!

4

2 に答える 2

3

に変換get_num(...)するget_num_struct(...)には、入力で正しいテキストをキャプチャする必要があります。また、 のように関数へのポインターも一致させる必要がある場合があるため、正規表現に括弧を入れることはできません&get_distance。ただし、これは vim を使用しているという事実と、入力全体をまとめる方法に部分的に依存します。これが機能することを確認しました。

%s/get_\w\+/&_struct/g

すべての行で、get_ で始まり、少なくとも 1 つの文字、数字、またはアンダースコアが続くすべての式を検索し、一致した文字列全体とそれに続く _struct に置き換えます。

くそー。仕様上、これらのことに答えるべきではありません。他の正規表現エンジンでは、& の代わりに \& を使用する場合があることに注意してください。これは、vim のデフォルトであるマジック セットに依存します。

于 2013-06-08T04:50:47.510 に答える