正規表現グラマー

Hyades アダプター構成エディターでは、 正規表現を使用して、ログ・ファイルを共通ベース・イベント・レコードに変換する方法を記述することができます。 以下の表に、正規表現の使用ガイドラインを示します。

一般規則

正規表現の突き合わせ

一致
{n,m} n 回以上、m 回以下
{n,} n 回以上
{n} 正確に n
* 0 回以上
+ 1 回以上
? 0 または 1 回
. 括弧で囲まれた正規表現内の ¥n を除くすべて
^ 括弧で囲まれた正規表現内のストリングまたは行の先頭 (つまり、改行の直後またはストリングの先頭の直前の位置) と一致するヌル・トークン。
$ 括弧で囲まれた正規表現内のストリングまたは行の終わり (つまり、改行の直前またはストリングの終わりの直後の位置) と一致するヌル・トークン。
¥b 文字クラスの内側のバックスペース ([abcd])
¥b ワード境界と一致するヌル・トークン (一方の側の ¥w と反対側の ¥W)
¥B ワード境界以外の境界と一致するヌル・トークン
¥A ストリングの先頭のみ
¥Z ストリングの終わり (または末尾の改行の前) のみ
\ 改行
¥r 復帰
¥t タブ
¥f 用紙送り
¥d 数字 [0-9]
¥D 数字以外 [^0-9]
¥w ワード文字 [0-9a-z_A-Z]
¥W ワード文字以外 [^0-9a-z_A-Z]
¥s 空白文字 [ ¥t¥n¥r¥f]
¥S 空白文字以外 [^ ¥t¥n¥r¥f]
¥xnn 文字 nn の 16 進表記
¥cD 対応する制御文字
¥nn または ¥nnn 逆参照でない場合は文字 nn の 8 進表記
¥1, ¥2, ¥3 ... 1 番目、2 番目、3 番目など、 突き合わせ対象の括弧で囲まれたグループ。 これを逆参照と言います。 対応するグループがない場合、数字は文字の 8 進表記と解釈されます。
¥0 ヌル文字。 他の円記号付き文字はすべてその文字自身と一致します。
*? 0 回以上
+? 1 回以上
?? 0 または 1 回
{n}? 正確に n
{n,}? n 回以上
{n,m}? n 回以上、m 回以下

一致のグループ化と抽出

式の一部をグループ化するには、メタキャラクター ( ) を使用します。 これにより、括弧で囲まれた正規表現を単一の単位として扱うことができます。 例えば、正規表現

severity:(1|2)
は、 パターン severity:1 または severity:2 と一致します。

グループ化メタキャラクターを使用して突き合わされたストリングの一部を抽出するには、 特殊変数 $1、$2 などを使用します。

# Extract the name and URL from $pattern = <a href="secure_logon.html">Logon form</a>
$pattern =~ <a href=¥"(.*)¥">(.*)</a> ; # match using grouping
$url = $1;                # $1 equals secure_logon.html
$pagename = $2;           # $2 equals Logon form

Perl 5 拡張正規表現

一致
(?#text) text の部分を無視する埋め込みコメント
(?:regexp) "()" のようなものをグループ化しますが、 グループの一致は保管されません。
(?=regexp) ゼロ幅の正の先読みアサーション。 例えば、¥w+(?=¥s) は、後ろに空白が続くワードと一致しますが、 MatchResult には空白は含まれません。
(?!regexp) ゼロ幅の負の先読みアサーション。 例えば、foo(?!bar) は、後ろに bar が続かないすべての foo のオカレンスと一致します。 これはゼロ幅のアサーションです。つまり、 a の後ろに b 以外の文字が続き (d)、 d はゼロ幅のアサーションに従うので、 a(?!b)dad と一致します。
(?imsx) 1 つ以上の埋め込みパターン一致修飾子。
i では、大/小文字が区別されません
m
では、入力の複数行処理が有効になります
s
では、入力の単一行処理が有効になります
x
では、拡張空白コメントが有効になります

関連概念
Hyades 汎用ログ・アダプターの概説
共通ベース・イベント・フォーマットの仕様

関連タスク
ログ・パーサーの作成
ルール・ベース・アダプターの作成
static アダプターの作成

関連参照
アダプター構成ファイルの構造
共通ベース・イベント・フォーマットの仕様
アダプター構成エディター
正規表現グラマー