正規表現とはどのようなものですか? 親トピック

正規表現は、文字列の照合を実行するために使用します。一般的な正規表現のいくつかの例については、以下の表を参照してください。
注意
注意
正規表現は、強力な文字列照合ツールです。このため、正規表現の構文に精通し、慣れている管理者が、正規表現を使用することをお勧めします。分かりにくい正規表現はパフォーマンスに影響することがあります。トレンドマイクロでは、複雑な構文を使用しない、単純な正規表現から始めることをお勧めします。新しいルールを導入する際は、バックアップ処理を使用し、そのルールを使用したInterScanでのメッセージの管理状況を観察します。そのルールが予期せぬ結果を引き起こさないことを確認してから、処理を変更します。

出現回数とグループ化

要素
意味
.
ドットまたはピリオドの記号は、改行文字以外の任意の文字を表します。
do.は、doe、dog、don、dos、dotなどに一致します。d.rは、deer、doorなどに一致します。
*
アスタリスク記号は、直前の要素が0回以上連続することを意味します。
do*は、d、do、doo、dooo、dooooなどに一致します。
+
プラス記号は、直前の要素が1回以上連続することを意味します。
do+は、do、doo、dooo、dooooなどに一致しますが、dには一致しません。
?
疑問符は、直前の要素が0または1回連続することを意味します。
do?gは、dgまたはdogに一致しますが、doog、dooogなどには一致しません。
( )
丸カッコは、その間にあるものが何であっても、1つのものと見なしてグループ化します。
d(eer)+は、deer、deereer、deereereerなどに一致します。+記号は丸カッコ内のサブ文字列に適用されるので、dの後に「eer」のグループが複数回続く文字列が検索されます。
[ ]
角カッコは、文字のセットまたは範囲を示します。
d[aeiouy]+は、da、de、di、do、du、dy、daa、dae、daiなどに一致します。+記号は角カッコ内の集合に適用されるので、dの後に [aeioy] の集合の中の1つ以上の文字が続く文字列が検索されます。
d[A-Z] は、dA、dB、dCからdZまでの文字列に一致します。角カッコ内の集合は、A~Zの範囲のすべての大文字を表します。
^
角カッコ内のキャレット記号は、指定された集合または範囲を論理的に否定します。つまり、その集合または範囲にない任意の文字が一致します。
d[^aeiouy] は、dの後に母音以外の1文字が続く、db、dc、dd、d9、d#に一致します。
{ }
中カッコは、直前の要素が特定の回数繰り返されることを設定します。中カッコ内の値が1つだけの場合、その回数の繰り返しのみが一致します。2つの数字がカンマで区切られている場合、直前の文字の繰り返しが有効な回数の集合を表します。1つの10進数字の後にカンマが続く場合は、上限がないことを意味します。
da{3} は、dの後に3回だけ「a」が続く、daaaに一致します。da{2,4} は、dの後に2、3、4回「a」が続くdaa、daaa、およびdaaaaに一致しますが、daaaaaには一致しません。da{4,} は、dの後に4回以上「a」が続く、daaaa、daaaaa、daaaaaaなどに一致します。

文字クラス (短縮形)

要素
意味
\d
任意の10進数文字。[0-9] または [[:digit:]] と機能的には同等です。
\dは、1つ以上の任意の10進数文字で、1、12、123などに一致しますが、1b7には一致しません。
\D
10進数字以外の任意の文字。[^0-9] または [^[:digit:]] と機能的には同等です。
\Dは、0、1、2、3、4、5、6、7、8、9以外の1つ以上の任意の文字で、a、ab、ab&に一致しますが、1には一致しません。
\w
任意の「単語」となる文字、つまり、任意の英数字。[_A-Za-z0-9] または [_[:alnum:]] と機能的には同等です。
\wは、a、ab、a1に一致しますが、!&には一致しません。\wは、1つ以上の大小の英字または10進数字で、句読点やその他の特殊文字は含まれません。\wは、a、ab、a1に一致しますが、!&には一致しません。
\W
英数字以外の任意の文字。[^_A-Za-z0-9] または [^_[:alnum:]] と機能的には同等です。
\Wは、*、&に一致しますが、aceまたはa1には一致しません。\Wは、1つ以上の任意の文字で、大小の英字および10進数字は含まれません。\Wは、*、&に一致しますが、aceまたはa1には一致しません。
\s
任意の空白文字。スペース、改行、タブ、改行禁止スペースなどです。[[:space]] と機能的には同等です。
vegetable\sは、「vegetable」の後に任意の空白文字が続く文字列に一致します。したがって、「I like vegetables in my soup」という文は検索されませんが、「I like a vegetable in my soup」は検索されます。
\S
任意の空白以外の文字。スペース、改行、タブ、改行禁止スペースなど以外のすべての文字です。[^[:space]] と機能的には同等です。
vegetable\Sは、「vegetable」の後に空白文字以外の任意の文字が続く文字列に一致します。したがって、「I like vegetables in my soup」という文は検索されますが、「I like a vegetable in my soup」は検索されません。

文字クラス

要素
意味
[:alpha:]
任意のアルファベット文字。
.REG.[[:alpha:]] は、abc、def、xxxに一致しますが、123や@#$には一致しません。
[:digit:]
任意の10進数文字。\dと機能的には同等です。
.REG.[[:digit:]] は、1、12、123などに一致します。
[:alnum:]
任意の「文字」、つまり、任意の英数字。\wと機能的には同等です。
.REG.[[:alnum:]] は、abc、123に一致しますが、~!@には一致しません。
[:space:]
任意の空白文字。スペース、改行、タブ、改行禁止スペースなどです。\sと機能的には同等です。
.REG.(vegetable)[[:space:]] は、「vegetable」の後に任意の空白文字が続く文字列に一致します。したがって、「I like a vegetable in my soup」という文は検索されますが、「I like vegetables in my soup」は検索されません。
[:graph:]
空白、制御文字、または同様のものを除く任意の文字。
.REG.[[:graph:]] は、123、abc、xxx、><"に一致しますが、空白または制御文字には一致しません。
[:print:]
任意の文字 ([:graph:] と似ています)。ただし、空白文字が含まれます。
.REG.[[:print:]] は、123、abc、xxx、><"、および空白文字に一致します。
[:cntrl:]
任意の制御文字 (例: CTRL + C、CTRL + X)。
.REG.[[:cntrl:]] は、0x03、0x08に一致しますが、abc、123、!@#には一致しません。
[:blank:]
スペースおよびタブ文字。
.REG.[[:blank:]] は、スペースおよびタブ文字に一致しますが、123、abc、!@#には一致しません。
[:punct:]
句読点文字。
.REG.[[:punct:]] は; : ? ! ~ @ # $ % & * ’r; "r;などに一致しますが、123、abcには一致しません。
[:lower:]
任意の小文字のアルファベット文字。
注意
注意
[大文字/小文字を区別する] を有効にする必要があります。有効にしない場合、[:alnum:] と同様に機能します。
.REG.[[:lower:]] は、abc、Def、sTress、Doなどに一致しますが、ABC、DEF、STRESS、DO、123、!@#には一致しません。
[:upper:]
任意の大文字のアルファベット文字。
注意
注意
[大文字/小文字を区別する] を有効にする必要があります。有効にしない場合、[:alnum:] と同様に機能します。
.REG.[[:upper:]] は、ABC、DEF、STRESS、DO、Def、Stress、Doなどに一致しますが、abc、123、!@#には一致しません。
[:xdigit:]
16進数で使用できる数字 (0-9a-fA-F)。
.REG.[[:xdigit:]] は、0a、7E、0fなどに一致します。

パターンアンカー正規表現

要素
意味
^
文字列の始まりを示します。
^ (notwithstanding) は、「notwithstanding」で始まる任意のテキストのブロックに一致します。「notwithstanding the fact that I like vegetables in my soup」は検索されますが、「The fact that I like vegetables in my soup notwithstanding」は検索されません。
$
文字列の末尾を示します。
(notwithstanding) $は、「notwithstanding」で終わる任意のテキストのブロックに一致します。「The fact that I like vegetables in my soup notwithstanding」は検索されますが、「notwithstanding the fact that I like vegetables in my soup」は検索されません。
\
正規表現で特殊な意味を持つ文字 (たとえば「+」) と一致させます。
  • .REG.C\\C\+\+は「C\C++」に一致します。
  • .REG.\*は*に一致します。
  • .REG.\?は?に一致します。
\t
タブ文字を示します。
(stress)\tは、サブ文字列「stress」を含み、「stress」の直後にタブ (ASCII 0x09) 文字が続く、任意の文字列のブロックに一致します。
\n
改行文字を示します。
注意
注意
改行文字は、プラットフォームにより異なります。Windowsでは、改行は2文字で、改行 (CR) に行頭復帰 (LF) が続きます。UNIXおよびLinuxでは、1文字の行頭復帰 (LF) で、Macintoshでは、1文字の改行 (CR) です。
(stress)\nは、サブ文字列「stress」を含み、「stress」の直後に2つの改行 (ASCII 0x0A) 文字が続く、任意の文字列のブロックに一致します。
\r
行頭復帰文字 (LF) を示します。
(stress)\rは、サブ文字列「stress」を含み、「stress」の直後に行頭復帰 (ASCII 0x0D) 文字が1つ続く、任意の文字列のブロックに一致します。
\b
バックスペース文字を示します。
(stress)\bは、サブ文字列「stress」を含み、「stress」の直後にバックスペース (ASCII 0x08) 文字が1つ続く、任意の文字列のブロックに一致します。
\xhh
指定された16進数コードのASCII文字を示します (hhは任意の2桁の16進数値を表します)。
\x7E(\w){6} は、先頭が~ (チルダ) 文字でちょうど6文字の英数字の「単語」を含む、任意の文字列のブロックに一致します。したがって、「~ab12cd」、「~Pa3499」が一致しますが、「~oops」は一致しません。