Proxy Server では、正規表現を使用してリソースを特定することができます。正規表現では、文字列のパターンを指定します。Proxy Server では、URL 内の一致パターンを見つけるために正規表現が使用されます。
正規表現の例を次に示します。
[a-z]*://[^:/]*\.abc\.com.*
この正規表現は、.abc.com ドメインにある任意のドキュメントに一致します。どのプロトコルのドキュメントでも、どのファイル拡張子が付いていてもかまいません。
表 16–2 正規表現とその意味
表現 |
意味 |
---|---|
。 |
改行文字を除く、任意の単一文字に一致します。 |
x? |
正規表現の x が 0 回または 1 回出現するものに一致します。 |
x* |
正規表現の x が 0 回以上出現するものに一致します。 |
x+ |
正規表現の x が 1 回以上出現するものに一致します。 |
x{n,m} |
文字 x に一致します。ここで x の出現は n 回以上、m 回以下です。 |
x{n,} |
文字 x に一致します。ここで x の出現は n 回以上です。 |
x{n} |
文字 x に一致します。ここで x の出現はちょうど n 回です。 |
[abc] |
角括弧に囲まれた任意の文字に一致します。 |
[^abc] |
角括弧に囲まれていない任意の文字に一致します。 |
[a-z] |
角括弧内に示された範囲内の任意の文字に一致します。 |
x |
文字 x に一致します。ここで x は特殊文字ではありません。 |
\x |
特殊文字 x の意味を削除します。 |
"x" |
特殊文字 x の意味を削除します。 |
xy |
正規表現 x が出現し、それに続いて正規表現 y が出現するものに一致します。 |
x|y |
正規表現 x か、正規表現 y のどちらかが出現するものに一致します。 |
^ |
文字列の冒頭に一致します。 |
$ |
文字列の末尾に一致します。 |
(x) |
正規表現をグループ化します。 |
次の例は、「正規表現について」に示した正規表現のうち、いくつかの使用方法について示したものです。
[a-z]*://([^.:/]*[:/]|.*\.local\.com).*
[a-z]* は、任意のプロトコルのドキュメントに一致します。
:// は、(:) の後に (//) が続くものに一致します。
[^.:/]*[:/] は、(.)、(:)または (/) を含まない任意の文字列の後に、(:) または (/) が続くものに一致します。つまり、この表現は完全修飾されていないホスト名と、ポート番号の付いたホストに一致します。
|.*\.local\.com は、完全修飾ドメイン名のホスト名 (local.com など) には一致しませんが、.local.com ドメイン内のドキュメントには一致します。
.* は、任意のファイル拡張子を持つドキュメントに一致します。
「正規表現について」に示したように、円記号は、特殊文字の意味をエスケープまたは削除するために使用することができます。ピリオドや疑問符などの文字には特別な意味があるので、それ自体を表すものとしてこれらの文字を使用する場合は、エスケープする必要があります。特に、ピリオドは多くの URL 内で使用されています。したがって、正規表現内でピリオドの特殊な意味を削除するために、ピリオドの前に円記号を付ける必要があります。