目次  MOBOTIXオンラインヘルプ

レギュラー表現

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

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

例1 装置のシリアルインターフェースを経由したデータ送信
[...]
2003-09-22 12:24:50 roboctrl ready
2003-09-22 12:24:51 roboctrl starting process
2003-09-22 12:25:25 roboctrl finished in 34sec
2003-09-22 12:25:30 roboctrl ready
2003-09-22 12:25:31 roboctrl starting process
2003-09-22 12:25:33 error: no material found
2003-09-22 12:25:33 roboctrl stop on error

例の最終行のようなエラーを装置が返信すると、レギュラー表現 stop.*error はイベントをトリガします。

特殊文字

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

文字

機能

^

記号は文字列の先頭を示します。 ^Testテストで始まる文字列でのみ trueです。

$

$ 記号は文字列の終端を示します。 Test$テストで終わる文字列でのみ trueです。

終止符 文字に対するプレースホルダです。 ab.d と書くと、 abcdabadは trueですが abccdは trueではありません。

記号を探す場合は、前にバックスラッシュ"\"を置いてマスクしてください。この場合、表現 ab\.dab.dでのみ trueです。

*

アスタリスク 記号は繰り返しオペレータで、先行する文字が無い場合や無制限に繰り返すという意味です。 ab*cabcabbbbbcだけでなくacも trueです。

+

プラス 記号は類似した繰り返しオペレータで、先行する文字が一つあるいは無制限に繰り返すという意味です。 ab+cabcabbbbbcは trueですが、 acは trueではありません。

クエッションマーク は先行する文字が一回だけ現れるか、まったく出ないことを意味します。 ab?cabcacは trueですが、 abbcは trueではありません。

[ ]

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

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

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

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


© 2001-2024 MOBOTIX, · http://www.mobotix.com/