正規表現の文字と使用方法

関連:GUI テスト,コンポーネント,およびAPI テスト

このセクションでは,正規表現の作成に使用可能な一般的なオプションの一部について説明します。

バックスラッシュ文字(\)

バックスラッシュ(\)には,2 つの機能があります。特殊文字と併せて使用すると,次の文字をリテラル文字として扱うことを示します。たとえば,\. は,ワイルドカードではなくピリオド(.)として処理されます。また,ntwd など,通常はリテラル文字として扱われる文字と組み合わせることによって,特殊文字になります。たとえば,\n は改行文字を表します。

上記以外の目的でバックスラッシュを使用すると,無視されます。

例:

  • w は文字「w」に一致します。

  • \w は,アンダースコアを含む任意の単語文字と一致する特殊文字です。

  • \\ はリテラル文字「\」に一致します。

  • \( はリテラル文字「(」に一致します。

  • one\two は,文字列「onetwo」に一致します。

たとえば,www.advantageonlineshopping.com という Web サイトを検索するとします。この場合,ピリオドは正規表現の記号と間違えられます。ピリオドが正規表現の一部ではないことを示すには,www\.advantageonlineshopping\.com のように入力します。

任意の 1 文字( . )

ピリオド(.)は,任意の 1 文字を表します(「\n」を除く)。

たとえば,welcome. は,welcomeswelcomed など,welcome の後にスペースを含む任意の 1 文字が続く文字列に一致します。複数のピリオドはピリオドの数と同じ数の任意の文字の並びを示します。

\n を含む任意の 1 文字と一致するには,(.|\n) と入力します。

リスト内の任意の 1 文字( [xy] )

角括弧は,候補文字のリスト内の任意の 1 文字を表します。

たとえば,1967 年,1968 年,1969 年のどれかを検索するには,196[789] と入力します。

リスト内にない任意の 1 文字( [^xy] )

角括弧内の最初の文字がキャレット(^)の場合は,候補文字列に指定された文字以外の文字に一致します。

たとえば,[^ab] は,ab 以外の文字に一致します。

キャレットがこのように解釈されるのは,角括弧内に指定されている文字群の先頭に指定された場合だけです。

範囲内の任意の 1 文字( [x-y] )

範囲内の 1 文字を表すには,角括弧([ ])とハイフン(-)を使います。

たとえば,1960 年代の任意の年に一致するには,196[0-9] と入力します。

ハイフンが角括弧内の最初か最後,またはキャレット(^)の後にある場合は範囲の指定とは解釈されません。

たとえば,[-a-z] はハイフンまたは任意の小文字を表します。

角括弧内の文字「.」「*」「[」「\」はリテラルです。たとえば,[.*]. または * に一致します。範囲の最初の文字が閉じ角括弧である場合,その括弧もリテラルとして認識されます。

0 個以上の特定の文字( * )

アスタリスク(*)は直前の文字の 0 回以上の繰り返しを表します。

たとえば,ca*rcarcaaaaaarcr などに一致します。

1 個以上の特定の文字( + )

プラス記号(+)は,直前の文字の 1 回以上の繰り返しに一致します。

たとえば,ca+rcar および caaaaaar に一致しますが,cr には一致しません。

正規表現のグループ化( ( ) )

丸括弧(())は,数学やプログラミング言語の場合と同様に,括弧内の並びを 1 つの単位として扱うよう指示します。

グループ化は,選択演算子(|)または反復演算子(* + ? { } )の引数を区切る場合に特に便利です。

複数の正規表現の 1 つ( | )

複数の正規表現の 1 つ( | )

パイプ記号(|)は,選択肢の中の 1 つを表します。

たとえば,foo|barfoo または bar のいずれかに一致します。これとは対照的に,fo(o|b)arfooar または fobar のいずれかに一致します。

行の先頭( ^ )

キャレット(^)は,行の先頭,または改行文字の後を表します。

たとえば,book「book」,「my book」,「book list」のいずれの行の「book」にも一致しますが,^book はこのうち「book」および「book list」の行の「book」にのみ一致します。

行の末尾( $ )

ドル記号($)は,行の末尾を表します。

たとえば,book は「my book」と「book list」のどちらの行の「book」にも一致します。これに対して,文字列の後に \n\r,または $ がある場合は,その文字列で終わる行にのみ一致します。

たとえば,book$ は「my book」のような行の「book」にのみ一致します。

改行文字( \n )または復帰文字( \r )

\n または \r で終わる正規表現は,改行文字または復帰文字で終わる文字列に一致します。

  • \n は,任意の改行文字に一致します。

  • \r は,任意の復帰文字に一致します。

たとえば,book は「my book」および「book list」の行の「book」に一致します。

文字列の後に \n または \r がある場合は,改行文字または復帰文字の前の行に一致します。

たとえば,book\r は「book」の後に復帰文字がある場合の「book」にのみ一致します。

アンダースコアを含む任意の英数字( \w )

\w は,任意の英数字およびアンダースコア(A-Z,a-z,0-9,_)に一致します。

たとえば,\w* は,英数字(A-Za-z0-9)およびアンダースコア(_)の 0 回以上の繰り返しに一致します。つまり,「Ab」,「r9Cj」,「12_uYLgeu_435」などに一致します。

たとえば,\w{3} は,英数字(A-Za-z0-9)およびアンダースコア(_)のが 3 回繰り返す文字列に一致します。つまり,「Ab4」,「r9_」,「z_M」などと一致します。

英数字以外の任意の文字( \W )

\W は,英数字とアンダースコア以外の任意の文字に一致します。

たとえば,\W は「&」,「*」,「^」,「%」,「$」,「#」などに一致します。

10 進型の数字( \d )

\d は,任意の 10 進型の数字に一致します。

たとえば, \d は「1」,「2」,「4」,「5」などに一致します。

数字以外の文字( \D )

\D は,10 進型の数字以外の任意の文字に一致します。

たとえば,\D は「a」,「T」,「=」,および「+」に一致します。

正規表現の演算子の組み合わせ

1 行の中で正規表現の演算子を結合すると,必要となる正確な検索基準を作成できます。

たとえば,「.」と「*」を組み合わせることで,任意の文字が 0 回以上繰り返す文字列を表すことができます(「\n」を除く)。

たとえば,start.* は「start」,「started」,「starting」,「starter」に一致します。

角括弧とアスタリスクの組み合わせを使用して,検索対象を数字以外の文字の組み合わせに限定することもできます。例:[a-zA-Z]*

0~1200 の任意の数と一致するには,1 桁,2 桁,3 桁の数字または 1000~1200 の 4 けたの数字と一致する必要があります。

次の正規表現は,0~1200 の任意の数と一致します。([0-9]?[0-9]?[0-9]|1[01][0-9][0-9]|1200)

注: 詳細については,VBScript リファレンスおよび cplusplus.com ECMAScript syntax を参照してください。