regexp - 正規表現で文字列のマッチングを行います。
regexp ?switches? exp string ?matchVar? ?subMatchVar
subMatchVar ...?
-inlineが指定されない限り(下述を参照)、正規表現exp が
string の一部または全体にマッチするか判定し、マッチすれば 1、マッチしなければ0を返します(正規表現マッチングは
re_syntaxに記述されています) 。
string の後、さらに引数が指定されていれば、string
のどの部分が exp
にマッチしたかという情報を返すための変数名です。 matchVar
には string の exp
全体がマッチした範囲が設定されます。「最初の subMatchVar
には exp
の中の最も左側にあるかっこで囲まれたサブ式にマッチする文字列が設定され、次の
subMatchVar
にはその次のかっこでくくられたサブ式にマッチする文字列が設定され…」というようになります。
regexp の最初の引数が「 -
」で始まっていれば、オプションスイッチであると見なされます。下記オプションがサポートされています。
- -about
- -expanded
- -indices
- -line
- -linestop
- -lineanchor
- -nocase
- -all
- -inline
- -start index
- --
- -about
- 正規表現のマッチをしないで、正規表現に関する情報を含むリストを返します。リストの最初の要素はサブ式のカウントです。
2番目の要素は正規表現の様々な属性を記述するプロパティ名のリストです。このスイッチは主にてデバッグに使われます。
- -expanded
- 空白とコメントが無視される拡張された正規表現文法の使用を可能にします。これは
(?x ) 埋め込まれたオプション(re_syntaxマニュアルページを参照してください)を指定することに相当します。
- -indices
- subMatchVar に保存される内容を変えます。 それぞれの変数にはstring
のマッチした文字をセットするのではなく、string
の中でマッチした部分の最初と最後の文字のインデックスをそれぞれ10進文字列で表したリストをセットします。
- -line
- 改行マッチングを可能にします。デフォルトでは、改行は特別な意味がなく、完全に普通
の文字です。このフラグを使うと '[^'の括弧式、そして'.'は改行にマッチさせません。'^'はその正常な役割に加えて、いかなる改行後の空文字列にもマッチします。
'$'はその正常な役割に加えて、いかなる改行前の空文字列にもマッチします。このフラグは-linestopと-lineanchorの両方、
または埋め込みオプション(?n )(re_syntaxを参照)を指定することに相当します。
- -linestop
- '[^'の括弧式そして'.'の振る舞いを変え、これらを改行で停止させます。これは埋め込みオプション
( ?p )(re_syntaxを参照)を指定することに相当します。
- -lineanchor
- '^'の括弧式そして'$'の振る舞いを変え、それらがそれぞれ行の始めと末尾をマッチングします。これは埋め込みオプション
(?w)(re_syntaxを参照)を指定することに相当します。
- -nocase
- マッチングの際、 string の中の大文字が小文字とみなします。
- -all
- 正規表現で文字列をできる限り何度もマッチし、見つかったマッチの総数を返します。これがマッチ変数で指定されるならば、
最後のマッチのみの情報を含みます。
- -inline
- コマンドが、通常、マッチ変数に置かれるデータをリストとして返すことにします。-inlineを使う場合、
マッチ変数は指定されないかもしれません。-allと共に使われる場合、リストは繰り返されるたびに連接されます。従って、
常にリストが返されます。マッチを繰り返すたび、このコマンドは正規表現で各サブ式に全体のマッチデータ、そして1つの要素を追加します。
例は以下です。
regexp -inline -- {\w(\w)} " inlined "
=> {in n}
regexp -all -inline -- {\w(\w)} " inlined "
=> {in n li i ne e}
- -start index
- 正規表現にマッチしたい文字列の始めの文字インデックスオフセットを指定します。このスイッチを使う場合、'^'は行の初めにマッチしなく、
\Aはindexで文字列の始めにマッチします。-indicesが指定される場合、それらのインデックスは
入力文字列の絶対的初めからインデックスを付けます。index は入力文字列の限界内にあります。
- --
- スイッチの終わりを示します。これ以降の引数は「-」で始まるとしてもexp
として扱われます。
exp の中の括弧でくくられたサブ式の数より subMatchVar の数の方が多かったり、
exp のサブ式の中にマッチしなかったものがある (たとえば、それが正規表現にマッチしない部分に含まれていたなど)
場合、対応するsubMatchVar には、-indices
が指定されていれば"-1 -1''が、そうでなければ空文字列が設定されます。
re_syntax, regsub
match, regular expression, string
Copyright © 1998 Sun Microsystems, Inc.
Copyright © 1995-1997 Roger E. Critchlow Jr.
|