ラベル 正規表現 の投稿を表示しています。 すべての投稿を表示
ラベル 正規表現 の投稿を表示しています。 すべての投稿を表示

2011/09/01

viエディタで使える正規表現2

viエディタで使える正規表現2
正規表現の使用例

文字の説明だけだと理解しずらいので、具体例をあげます。

linux
文字列「linux」

\<host
「host」で始まる語

host\<
「host」で終わる語

\<host\>
単語「host」を検索

^linux
文字列「linux」で始まる行

linux$
文字列「linux」で終わる行

^linux$
文字列「linux」だけの行


[Ll]inux
文字列「Linux」または「linux」

l...x
「l」で始まり「x」で終わる5文字

^l...x$
「l」で始まり「x」で終わる5文字の行

^\.
「.」で始まる行

^\[^.]
「.」で始まらない行


linux*
「linu」「linux」「linuxx」など、「*」は最後の「x」の0回条の繰り返し

[a-z]*
0文字以上のアルファベット小文字 0文字の場合は全てに該当するので、この表現はあまり使わない。むしろ1文字以上にしたかったときに間違いで記述しているかもしれない。

[a-z][a-z]*
1文字以上のアルファベット小文字

[a-z].*
アルファベット小文字のあとに0文字以上の文字

[a-zA-Z]
英字(小文字、大文字)

[0-9a-zA-Z]
英数字

viエディタで使える正規表現

viエディタで使える正規表現
viエディタの検索(/)で使える文字表現です。正規表現は使うコマンド、プログラムによって少し表現(記述)方法が異なるものがあります。 grepなどとは微妙に異なるところがあるので注意が必要です。

.
改行以外の文字

*
0文字以上の繰り返し 1文字以上の繰り返しは「.*」となります

^
行の先頭

$
行末

\
エスケープ

[ ]
括弧内の任意の文字 [0-9],[a-z]などで使用

[^ ]
括弧内の任意の文字に一致しない

\<
直後の単語で始まる

\>
直前の単語で終わる

2011/08/26

正規表現の演算子

正規表現の演算子には以下のものがあります。


.「ドット」 1文字に相当
$            行末
^            行頭
*            0文字以上の繰り返し
\            エスケープ(特殊文字の前に置くことで特殊文字の機能を打ち消す)
[文字]     括弧内の文字に該当
              たとえば[0-9]なら[0123456789]と同じで、数字を表します。 
[^文字]    括弧内の文字以外に該当
              たとえば[^0-9]なら[0-9]以外と同じです。数字以外を表します。 

正規表現は、シェルを扱うときなどに使います。必要なときに思い出して下さい。
ファイルを扱うときのメタキャラとは異なります。