正規表現


■ 正規表現

 ViViでは以下に定義される正規表現をサポートします。
正規表現は検索、置換、grep で使用されます。

捕捉:

  • ダブルバイト文字、濁点または半濁点付きの有効な半角カナ文字は1文字として取り扱われる。
  • [] でダブルバイト文字を指定できる。
  • あいまい検索指定は正規表現内でも [] の中を除き有効である。

正規表現説明
.任意の1文字(ダブルバイト文字も1文字)とマッチします。
[]角かっこに囲まれた文字のうちの任意の 1 文字、または、ハイフン (-) で区切られた文字範囲のうちの任意の1文字にマッチします。たとえば、b[aeiou]d は bad、bed、bid、bod、および bud にマッチします。また、r[eo]+d は red、rod、reed、および rood にはマッチしますが、reod や roed にはマッチしません。x[0-9] は x0、x1、x2 などにマッチします。角かっこ内の最初の文字としてカレット (^) を指定すると、意味が反対になり、カレットに続く文字以外のすべての文字にマッチします。
[^]角かっこ内の、カレット (^) に続く文字以外の任意の1文字、または ハイフン (-) で区切られた文字範囲内の文字以外の任意の1文字にマッチします。たとえば、x[^0-9] は xa、xb、xc などにはマッチしますが、x0、x1、x2 などにはマッチしません。
^行の先頭にマッチします。正規表現の最初にあるときのみ有効です。
$行の末尾にマッチします。正規表現の最後にあるときのみ有効です。
(s1|s2|...)文字列 s1 または s2 または ... とマッチします。文字列には正規表現が使用できます。
*直前にある文字または正規表現の0回以上の繰り返しにマッチします。 たとえば、ba*c は bc、bac、baac、baaac などにマッチします。
+直前にある文字または正規表現の1回以上の繰り返しにマッチします。 たとえば、ba+c は bac、baac、および baaac にはマッチしますが、bc にはマッチしません。
?直前にある文字または正規表現の0回または1回の繰り返しにマッチします。 たとえば、ba?c は bac、bc にはマッチしますが、baac にはマッチしません。

特殊文字機能
\tタブを表します
\bバックスペース
\..
\[[
\]]
\^^
\$$
\((
\))
\||
\**
\++
\??
\\\
\xHHHHSJISコードによる文字

■ 使用例

正規表現意味
^$空行とマッチします。
^.+空行以外とマッチします。
^●"●" で始まる行とマッチします。
^[0-9]+#先頭に数字が続き、その直後に "#" がある行とマッチします。
[a-zA-Z]+半角英字列とマッチします。
[a-zA-Za-zA-Z]+半角・全角英字列とマッチします。
vi(vi)?"vi" または "vivi" とマッチします。
(NEC|日本電気)"NEC" または "日本電気" とマッチします。