正規表現の構文

正規表現は、テキストのパターンを定義する文字列です。Workbench では正規表現を使用して検索条件を表すことができます。

正規表現は、テキストの検索時に返されるテキストの内容全体を指定しない場合に便利です。正規表現は次のような場合に便利です。

  • 検索するテキストの一部しか判明していない場合。たとえば、ファイルを検索する場合に、ファイル名の先頭の 3 文字しかわかっていない場合などです。

  • 特定のパターンを含むテキストのインスタンスを複数検索する必要がある場合。たとえば、同じファイル拡張子を持つファイルをすべて検索する必要がある場合などです。

正規表現を作成するには、正しい構文を使用する必要があります。

リテラル文字

正規表現の基本要素はリテラル文字です。たとえば、abc という正規表現は abc という文字列と一致します。

グループ

文字列を (defg) のようにかっこで囲むとグループになります。グループの文字列は 1 つの要素として扱われます。

任意の 1 文字

ピリオド(.)は任意の 1 文字を表します。たとえば、a.bc は、a の後に任意の 1 文字、その後に bc が続く文字列(ambc など)を表します。

OR 演算子

2 文字のうちいずれかを含むパターンを指定するには、パイプ文字(|)でその 2 文字を区切ります。たとえば、x|yx または y と一致します。正規表現 x|(zy)x または zy と一致します。

量指定子

量指定子は数量を表現するために使用する特殊文字です。量指定子はその直前にある要素に適用されます。たとえば、量指定子の前にグループがある場合、グループの文字全体をひとまとまりとして量指定子が適用されます。

文字

性質

?

0 回または 1 回

a?a という文字が 0 個または 1 個あることを示します。

abc?ab の後に 0 個または 1 個の c という文字が続く文字列(abcab など)と一致します。

*

0 回以上

a*b|c は 0 個以上の a という文字の後に b または c が続く文字列(aaaac など)と一致します。

+

1 回以上

z+z という文字が 1 個以上続く文字列と一致します。

{n}

n 回

efg¥{3¥bef の後に g という文字が 3 個続き、その後に別の文字が続く文字列(efgggb など)と一致します。

{n,}

n 回以上

a{3,}a という文字が 3 個以上続いている文字列と一致します。

{n,m}

n 回以上 m 回以下

a{3,5}a という文字が 3 個以上 5 個以下続いている文字列と一致します。

注意: バックスラッシュ(¥)は特殊文字のエスケープ処理に使用するもので、これにより特殊文字をリテラル文字として使用できます。例えば、¥+ はプラス記号(+)と一致します。バックスラッシュ文字(¥)を Windows ファイルシステムのパスで使用するには、次のように ¥¥ を使用します。
    c:\\file.txt

文字クラス

文字クラスは文字のグループです。文字クラスは、文字と特殊文字を角かっこ([ ])で囲んで定義します。

文字

説明

リテラル

文字クラスに含める文字です。

[abc]a または b または c を表します。

^

文字の否定を表します。

[^abc]abc を除く任意の文字を表します。

-

文字の範囲です。両端の文字を含みます。

[a-z] は a と z の間のすべての文字(az を含む)を表します。

[a-zA-Z]az の間のすべての文字(az を含む)と、AZ の間のすべての文字(両端の文字を含む)を表します。

入れ子の角かっこ

角かっこを入れ子にすることにより、文字クラスの組み合わせを示します。

[a-d[m-p]]a から d までのすべての文字と m から p までのすべての文字を表します。内容は [a-dm-p] と同じです。

&&

文字と文字クラスの共通部分を指定します。

[a-z&&[def]] は文字範囲 a-z と、def で表される文字クラスとの共通部分を表します。この正規表現の例では def に評価されます。

定義済み文字クラス

一部の定義済み文字クラスは略記法により表現できます。

文字クラス

略記法

説明

[0-9]

¥d

1 桁の数字です。

[^0-9]

¥D

数字以外の任意の文字です。

¥¥x

¥s

空白文字です。

[^¥s]

¥S

空白文字以外の任意の文字です。

[a-zA-Z_0-9]

¥w

アルファベットの文字を表します。

[^¥w]

¥W

アルファベット以外の文字を表します。