Table of Contents   MOBOTIX Online Help

レギュラー表現

このページはレギュラー記述の考え方を簡単に紹介するもので、完全なものではありません。項目に対する詳細情報はRegular Expressions Jeffery E. F. Friedl著 O'REILLY をご覧ください。

レギュラー記述は文字列のテストに使用する検索パターンです。例として、シリアルインターフェース経由で送られたIPメッセージやデータのメッセージをテストするためにレギュラー記述を使用できます。レギュラー記述は検索したい一つまたは複数の文字や一定の機能を果たす特殊文字でできています。

例:

ある装置がシリアルインターフェース経由で以下のサンプルに示すデータを送ります。

[...]
2003-09-22 12:24:50 PM robots ready
2003-09-22 12:24:51 robots starting process
2003-09-22 12:25:25 robots finished in 34sec
2003-09-22 12:25:30 robots ready
2003-09-22 12:25:31 PM robots starting process
2003-09-22 12:25:33 error:no material found
2003-09-22 12:25:33 robots stop on error

レギュラー記述stop.*errorは装置が例の最終行にあるようなerrorを返してくるとイベントをトリガします。


特殊文字

以下の表の左欄から文字やバックスラッシュ"¥"あるいはマイナス"-"記号を検索するときは、バックスラッシュ"¥"(マスキングとも言われる)を先頭に付けてください。

文字 機能
^ 記号は文字列の先頭を示します。^Testと書くとTestで始まる文字列という意味です。
$ $記号は文字列の終端を示します。Test$と書くとTestで終わる文字列という意味です。
.

full stop記号は文字に対するプレースホルダです。ab.dと書くと、abcdabadは真ですがabccdは真ではありません。

記号を探す場合は、前にバックスラッシュ"¥"を置いてマスクしてください。この場合、ab¥.dab.dだけを示します。

* アスタリスク記号は繰り返しオペレータで、先行する文字が無い場合や無制限に繰り返すという意味です。ab*cと書くと、abcabbbbbcは真であり、acも真です。
+ プラス記号は類似した繰り返しオペレータで、先行する文字が一つあるいは無制限に繰り返すという意味です。ab+cと書くと、abcabbbbbcは真ですが、acは真ではありません。
? クエッションマークは先行する文字が一回だけ現れるか、まったく出ないことを意味します。ab?cと書くと、abcacは真ですが、abbcは真ではありません。
[ ]

[スクエアブラケット]で囲まれた記述は文字のクラスを表します。

文字列のクラスはリストあるいはレンジで定義されます。[abc]という記述は文字のリストを表します。一方[a−m]はレンジを示します。

例として、[0-9]はすべての数字に対して真ですが、[a−z]は小文字に対して真です。[0-9a-zA-Z]のように一つの文字クラスで複数のレンジが使用可能であり、また[afm0-6]にあるようにリストとレンジを混合することも可能です。

文字のクラスは、キャレット記号"^"を前に置くことにより、反転することもできます。[ab]と書くと、でもでもないすべての文字に対して真となります。

cn, de, en, es, fr, it, jp, ru

© 2001-2017 MOBOTIX AG, Germany · http://www.mobotix.com/