0

以下を置き換える必要があります。

CREATE TABLE /*!32312 IF NOT EXISTS*/ `access`

CREATE TABLE IF NOT EXISTS `access`

私はもう試した

:%s/\/\*\!\d+(.*)\*\//\1/g

しかし、それはうまくいかなかったようです。私は何を間違っていますか?

4

3 に答える 3

4

vim では、バックスラッシュ + (または代わりに * を使用) が必要です。また、vim でグループ化括弧をバックスラッシュする必要があります。したがって:

:%s/\/\*\!\d\+\(.*\)\*\//\1/g

はい、vim の古いスタイルの posix 正規表現は最悪です :/

編集:以下のコメントで述べたように、+ は \+ としてエスケープされた場合に機能します。そして、\d は実際にサポートされています。これを修正するために正規表現の例を編集しました。より簡潔で読みやすいバージョンについては、Brian Carper の例も参照してください。

于 2009-05-05T05:37:52.153 に答える
4

「非常に魔法」を使用し、デフォルト以外の区切り文字を使用して、これを読みやすく (そして覚えやすくします)。

:%s@\v/\*!\d+(.*)\*/@\1@g

「非常に魔法」がなければ、 and の前にバックスラッシュを付ける必要があります+(()ただし、*or の前には入れないでください)。あまり一貫していません。

于 2009-05-05T05:48:12.097 に答える