Windows system >> Windowsの知識 >  >> Windowsチュートリアル合成 >> システムFAQ >> vimでの正規表現の使用

vimでの正規表現の使用

  

まず、正規表現を使用するコマンド

正規表現を使用する最も一般的なコマンドは、/(検索)コマンドです。形式は次のとおりです。

 /regular expression 

もう1つの便利なコマンドは次のとおりです。s(replace)コマンド。//の間の最初の正規表現を//の次の//に置き換えます。間の文字列です。

:s /正規表現/置換文字列/options 

正規表現の学習中に/コマンドを使用して練習できます。

2番目に、メタ文字

メタ文字は特別な意味を持つ文字です。メタ文字を使用して、任意の文字の意味、行頭、行末、および数文字を表現します。

メタ文字の概要
メタ文字説明。任意の文字と一致します[abc]角かっこ内の任意の文字と一致します。 - を使用すると、[a-z0-9]のように小文字やアラビア数字に一致する文字を表示できます。 [^ abc]角かっこの先頭に^記号を使用して、角かっこ内の文字以外の任意の文字が一致することを示します。 \\ dはアラビア数字と一致し、[0-9]と同等です。 \\ Dはアラビア数字以外の任意の文字と一致し、[^ 0-9]と同等です。 \\ xは[0-9A-Fa-f]と同等の16進数と一致します。 \\ Xは、[^ 0-9A-Fa-f]と同等の16進数以外の任意の文字と一致します。 \\ wは、[0-9A-Za-z_]と同じ意味の文字letterと一致します。 \\ W [^ 0-9A-Za-z_]と同等の、文字以外の任意の文字と一致します。 \\ tは< TAB>文字と一致します。 \\ sは空白文字と一致します。[\\ t]と同じです。 \\ Sは空白文字以外の文字と一致し、[^ \\ t]と同じです。

さらに、*、。、/などの文字を検索する場合は、前に\\記号を使用する必要があります。これは、これがメタ文字ではなく通常の文字であることを示します。
メタ文字説明\\ * *文字と一致します。 \\。マッチします。 \\ /に一致します。 \\\\は\\文字と一致します。 \\ [は[文字と一致します。

数字を表すメタ文字
メタ文字説明*一致0 - 任意の数字\\ +一致1 - 任意の数字\\?一致0-1 \\ {n、m}一致nm \\ {n}一致n \\ {n、} nに一致する任意の数字\\ {、m} 0〜mに一致

位置を示す記号
メタ文字説明$一致行の終わり^最初の行に一致\\<一致する単語の接頭辞\\>単語の末尾の一致

ユースケース

 /char \\ s \\ + [A-Za-z _] \\ w *;"すべての文字がcharで始まり、その後に複数の空白が続く、"最後識別子とセミコロンである/\\ d \\ d:\\ d \\ d:\\ d \\ d" 17:37:01:g /^ \\ s * $ /d"削除のみの形式で時間文字列を検索する空白行:s /\\< four \\> /4 /g" 4つすべてを4と置き換えますが、14 4は

を置き換えません。3番目に、変数を置き換えます。

正規表現を囲むには、\\(および\\)記号を使用します。正規表現は、\\ 1、\\ 2などの変数を使用して後でアクセスできます。 (および\\)の内容

ユースケース

 /\\(a \\ + \\)[^ a] \\ + \\ 1" aabbbaaのように、aの最初と最後で同じ数の文字列を検索します、aaaccacaaaがabbbaaと一致しません。s /\\(http:\\ /\\ /[ -  az \\ ._〜\\ +%\\ /] \\ + \\)/< a href =" \\ 1> \\ 1; \\ /a> /" URLを< a href =" http://url> http://url< /a>:s /\\(\\ w \\ + \\)\\の形式に置き換えます。 s \\ + \\(\\ w \\ + \\)/\\ 2 \\ t \\ 1" data1 data2からdata2 data1 

への変更4.機能

は置換コマンドで使用できます。関数式は、置換の内容を

の形式で記述するために使用されます。s /関数内の文字列を置換する/\\ = function 

、submatch(1)、submatch(2)などを使用して\\ 1を参照する、\\ 2など、およびsubmatch(0)は一致の内容全体を参照できます。

ユースケース

:%s /\\< id \\> /\\ = line("。")"各行のID文字列を行番号に置き換えます:% s /^ \\< \\ w \\ + \\> /\\ =(行( "。") -  10)。 "。"。submatch(1) ";各行の先頭の単語を(で置き換える)行番号-10)11行目の単語である"という単語の形式は、1に置き換えられます。word 

V正規表現とPerl正規表現の違い

メタキャラクターとの違い
Vimの構文Perlの構文意味\\ + + 1-任意の数字\\??0-1 \\ {n、m} {n、m} nm \\(および\\)(および)グループ化

VI、vi正規表現の練習< Br>

ゴシップについて話してはいけない…例は、次のようなすべてを示しています。ubbタグに変更する必要があります。

vimコマンドモードに入ります。;([[^"] *)' [^>] *> /[img] 1 [/img] /g

置き換えます

[img] gu.jpg [/img]

[img] os.jpg [/img]

[i] Mg] hu.jpg [/img]

[img] ang.jpg [/img]

次のように説明します。


コマンドの実行状況

%s

は検索対象の文字列を検索および置換することを意味します。

%s /a /b /g

検索する文字列(通常の一致); b置換されるテキスト; gはグローバル検索置換を意味します(そうでなければ最初に見つかった結果のみ)

([^"] *)

はNの引用符を含まない文字を意味します。 Outside()は、置換が後で使用されることを意味します(1、…、9などで参照されます)。

[/img]

Copyright © Windowsの知識 All Rights Reserved