パターン
パターンを使用すると、テキストを表現することができます。たとえば、テキスト "32" は、2 桁を含むテキストとして記述することができます。しかし、その他のテキストも "12" や "00" などの 2 桁の数字を含みます。これらのテキストはパターンに一致すると言うことができます。(Design Studio のパターンは Perl5 の文法に従います。)
パターンは、通常の文字と特殊記号で構成されています。特殊記号にはそれぞれ特別な意味があります。たとえば、特殊記号 "."(ドット) は、任意の 1 文字を意味し、"a"、"b"、"1"、"2" など、単一のすべての文字に一致します。
特殊記号
パターン内では、次の特殊記号を使用することができます。
特殊記号 | 説明 |
---|---|
. |
任意の 1 文字 ( "a"、"1"、"/"、"?"、"." など)。 |
\d |
任意の 10 進数の数字 ( "0"、"1" ... "9" など)。 |
\D |
10 進数の数字以外の任意の文字 ( "0"、"1" ... "9" を除外した "." と同じ)。 |
\s |
任意の空白文字 ( " "、タブ、リターンなど)。また、空白文字に関する注意を参照してください。 |
\S |
任意の非空白文字 ( " "、タブ、リターンなどを除外した "." と同じ)。 |
\w |
任意の英数字 ("a" ... "z"、"A" ... "Z"、"0"..."9")。 |
\W |
英数字以外の任意の文字 ("a" ... "z"、"A" ... "Z"、"0" ... "9" を除外した "." と同じ)。 |
\n |
改行文字。 |
\r |
キャリッジ リターン文字。 |
\t |
タブ文字。 |
[abc] |
a、b、c の中の任意の文字。 |
[^abc] |
a、b、c 以外の任意の文字。 |
[a-z] |
a から z までの範囲の任意の文字。 |
a|b |
サブパターン a が一致するすべて、またはサブパターン b が一致するすべてに一致します。 |
"." または "\" のような特殊文字を通常の文字として機能させたい場合は、その前に "\" (バックスラッシュ) を付けてエスケープさせることができます。このため、単一の任意の文字ではなく、実際の "." 文字と一致させたい場合は、"\." と表記する必要があります。
以下の括弧を使って、パターンをサブパターンに整理できます。"(" および ")" 。パターン "abc" は "(a)(bc)" として整理できます。サブパターンは、パターン演算子を適用するときに便利です。
空白文字に関する注意
パターン内の空白文字は、常に同じ方法で処理されるとは限りません。これは旧バージョンとの互換性を確保するためです。場合によっては、空白文字が 1 つのスペースに圧縮されることもあります。たとえば、タグ テキストに複数の空白文字が連続して含まれている場合、それらは 1 つの空白文字に変換されます。
このような空白文字の圧縮は、次の場所で発生します。
-
タグ パターンを使用するベーシック エンジン ロボットのファインダー。
-
パターンを使用してタグの出現を待機するベーシック エンジン ロボットの HTML 待機基準。
その他の場合には、空白文字の圧縮は発生しません。
反復演算子
以下の演算子記号は、前の文字、記号、サブパターンを反復します。
特殊記号 | 説明 |
---|---|
{m} |
先行するサブパターンの m 回の繰り返しと正確に一致。 |
{m,n} |
先行するサブパターンの m ~ n 回 (両端を含む) の繰り返しに一致。できる限り多くのサブパターンに一致します。 |
{m,n}? |
先行するサブパターンの m ~ n 回 (両端を含む) の繰り返しに一致。できる限り少ないサブパターンに一致します。 |
{m,} |
先行するサブパターンの m 回以上の繰り返しと正確に一致。できる限り多くのサブパターンに一致します。 |
{m,}? |
先行するサブパターンの m 回以上の繰り返しと正確に一致。できる限り少ないサブパターンに一致します。 |
? |
前のサブパターンか空テキスト。{0,1} の簡略記法です。 |
* |
前のサブパターンの繰り返し回数、または空のテキストに一致。{0,} の簡略記法です。できる限り多くのサブパターンに一致します。 |
*? |
前のサブパターンの繰り返し回数、または空のテキストに一致。{0,}? の簡略記法です。できる限り少ないサブパターンに一致します。 |
+ |
先行するサブパターンの 1 つ以上の繰り返しに一致。{1,} の簡略記法です。できる限り多くのサブパターンに一致します。 |
+? |
先行するサブパターンの 1 つ以上の繰り返しに一致。{1,}? の簡略記法です。できる限り少ないサブパターンに一致します。 |
これらの演算子は、前の文字、記号、サブパターンを反復します。
グループ化に関する詳細
"(" と ")" がサブパターンを新しいサブパターンにグループ化できるのを確認してきました。しかし、これは別の目的に使用できます。エクスプレッションの中でこれらのグループを使用できるのです。エクスプレッションで使用できないグループ化を行うには、"(?:" を使用することができます。
\n を使用すると、パターンの中の他のグループを参照できます。ここでの n はグループの番号です。