BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   BEA Tuxedo コマンド・リファレンス   |   先頭へ   |   前へ   |   次へ   |   目次

 


rex(1)

名前

rex-オフ・ラインの正規表現コンパイラおよびテスタ

形式

コンパイル:

rex pattern_file C_file 

テスト:

rex pattern [file . . . ]

機能説明

引数なしで起動する場合、rex は、標準入力から正規表現を読み取り、初期化した文字配列を標準出力に書き込みます。通常、出力は C プログラムにインクルードされます。これにより、実行時間およびプログラムのサイズの両方を節約できます。コマンド rex は、標準入力 (通常は入力ファイルから切り換えられる) での正規表現をコンパイルし、出力を標準出力 (通常は出力ファイルに切り換える) に書き込みます。

入力ファイルにはいくつかのパターンがあります。各形式は次のようになります。

name string [string . . .]

ここでの name は、出力の配列に使用する C の名前です。string は正規表現で、二重引用符で囲まれます。複数の stringname の後にくる場合、それらは、1 つの string に連結されます。(複数の string は、厳密には、フォーマット上の都合です)。パターンに二重引用符がある場合、それらの前にはバック・スラッシュが必要です。

出力は、C のプログラムにインクルードされるかまたはコンパイルされ、後でロードされます。rex 出力を使用する C プログラムでは、rematch(abc,line,0) は、名前が abc である正規表現を line に適用します。

次は、サンプルの入力ファイルです。

cname   "[a-zA-Z_][a-(3c)-Z0-9_]*" 

tn "\\\\(([0-9]{3})$0\\\\)"
"([0-9]{3})$1"
"-"
"([0-9]{4})$2"

これに対応する出力は、次のようになります。

/* pattern: "[a-aA-Z_][a-zA-Z0-9_]*" */ 
char cname[] = {
040,0,0206,012,0,0210,0141,0172,0210,0101,0132,0137,
... };

/* pattern: "\\\\(([0-9]{3})$0\\\\)([0-9]{3})$1-([0-9]{4})$2" */
char tn[] = {
063,0,050,0202,0225,013,0,03,0206,06,0,0210,060,071,
... };

rexに 1 つあるいは複数の引数を指定して起動することにより、テストするデータをパターンと突き合わせることができます。1 番目の引数は、残りの引数で指定される名前のファイルの各行に適用するパターン (正規表現)として扱われます。ファイル名の引数が指定されない場合、標準入力が使用されます。特殊なファイル名、- は、標準入力を指す引数として使用されます。

一致するテキストがある場合、一致したものを含む行が出力され、行の一致した部分に下線が引かれます。さらに、指定されたサブ・パターン用に抽出したすべてのテキストが、別の行に出力されます。

次にコマンド rex の使用例を示します。

rex '(^|)([0-9]+)$0(|$)'

入力は次のとおりです。

... or 200 programmers in one week.
This sentense has 3 erors.
I need 12 bad men.

出力は次のとおりです。

... or 200 programmers in one week.
-----
$0 = `200'

This sentense has 3 erors.
---
$0 = `3'

I need 12 bad men.
----
$0 = `12'

診断

エラーは、ファイル・オープン・エラー、引数エラーなどですが、改めて説明するまでもありません。

関連項目

tpsubscribe(3c) の正規表現の情報

 

先頭へ戻る 前のトピックへ 次のトピックへ