regcmp(1)
regcmp --
正規表現のコンパイル
形式
regcmp [-] file . . .
機能説明
regcmp コマンドは regcmp 関数と類似の機能を実行し、ほとんどの場合、C 言語プログラムから regcmp 関数を呼び出す必要をなくします。regcmp 関数を使用せずにすませることで、実行時間とプログラムサイズがともに節約できます。regcmp コマンドは、file で指定されたファイル内の正規表現をコンパイルして、出力を file.i に入れます。- オプションを使用すると、出力は file.i に入ります。file のエントリの形式は、名前(C 言語の変数名)の後ろに 1 つ以上のブランクと二重引用符でくくった 1 つ以上の正規表現を続けたものです。regcmp の出力は、C ソースコードです。コンパイルされた正規表現は、extern char 型の配列で表現されます。file.i ファイルは、C 言語プログラムに #include することができ、file.c ファイルはコンパイルおよびロードすることができます。regcmp 出力を使用する C 言語プログラムでは、regex(abc,line) が、abc という正規表現を line に適用します。エラーメッセージは読めば意味の分かる簡単な表現になっています。regcmp は環境変数 LC_CTYPE(environ(5) の LANG を参照)で指定されたロケールに従って、補助コードセット文字を処理します。パターン検索は、ed(1) で説明したように、バイト単位ではなく文字単位で行われます。入力されたバックスラッシュは次の文字を引用符でくくる役目をします。バックスラッシュの直後で認識される文字は、n、t、r、b と、3 までの 8 進数と、別のバックスラッシュです。その他の文字は変更されずに送信されますが、バックスラッシュは削除されます。
使用例
name "([A-Za-z][A-Za-z0-9\_]
)$0"
telno "\\({0,1}([2-9][01][1-9])$0\\){0,1}
"
"([2-9][0-9]{2})$1[-]{0,1}"
"([0-9]{4})$2"
上記の 3 つの telno の引き数は同一行に入力されなければなりません。
regcmp 出力を使用する C 言語プログラムでは、
regex(telno, line, area, exch, rest)
は、telno という正規表現を line に適用します。
関連項目
ed(1),
regcmp(3G)
SCO UnixWare Forum Beta Release (BL12) -- September 1997
© 1997 The Santa Cruz Operation, Inc. All rights reserved.