bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo コマンド・リファレンス

 Previous Next Contents View as PDF  

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

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

次にコマンド 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) の正規表現の情報

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy