regsub -
正規表現のパターンマッチングに基づく置き換えを行います。
regsub ?switches? exp string subSpec ?varName?
本コマンドはstringを正規表現expにマッチします。string
をvarNameという変数にコピーします。varNameが存在しなければstring
を返します。マッチがある場合(正規表現のマッチングは re_syntaxに記述されます。) 、string をvarName
( あるいはvarNameが存在しなければ、このコマンドの結果)にコピーします。同時にstring
のexpにマッチした部分はsubSpecに置き換えられます。subSpec
が"&"か"\0"を含む場合、置き換えによりstring
の expにマッチした部分に置き換えられます。 subSpecが"\n"を含む場合、n
は1から9までの数字で、exp のn 番目の括弧で括られたサブ式にマッチしたstringの部分と置き換えられます。
それ以外、バックスラッシュが"&"や"\0"や"\n"やバックスラッシュの特別
な解釈を防ぐために、subSpecの中で使うことができます。 subSpec内でのバックスラッシュの使用は、Tclの分析パーサのバックスラッシュの使用に悪い影響を与えることがあります。そのため
subSpecがバックスラッシュを含んでいるなら、常にそれを中括弧で囲むことがもっとも安全です。
regexp への最初の引数が「-」で始まっている場合は、スイッチとして扱われます。次のスイッチが現在サポートされています。
- -all
- -expanded
- -line
- -linestop
- -lineanchor
- -nocase
- -start index
- --
- -all
- expとマッチするstringのすべての範囲が見つけ出され、
その範囲のそれぞれに置き換えが行われます。このスイッチがない場合、最初にマッチした範囲だけが見つけ出され置き換えられます。
-allが指定されると"&"と"\n"シーケンスは、各置き換えに対応するマッチでの情報を使って扱われます。
- -expanded
- 空白とコメントが無視された拡張された正規表現文法の使用を可能にします。これは
(?x ) 埋め込まれたオプション(re_syntaxを参照してください)を指定することに相当します。
- -line
- 改行敏感なマッチングを可能にします。デフォルトでは、改行は特別な意味がなく、完全に普通
の文字です。このフラグを使うと、 '[^'の括弧式そして'.'は改行に決してマッチされなく、'^'はその正常な役割に加え、いかなる改行後の空文字列にマッチします。
'$'はその正常な役割に加え、いかなる改行前の空文字列にマッチします。このフラグは-linestopと-lineanchorの両方、
または埋め込みオプション(?n )(re_syntaxを参照してください)を指定することに相当します。
- -linestop
- '[^'の括弧式そして'.'の振る舞いを変え、それらが改行で停止するようにします。これは埋め込みオプション
( ?p )(re_syntaxを参照してください)を指定することに相当します。
- -lineanchor
- '^'の括弧式そして'$'を変え、それらがそれぞれ行の始めと末尾をマッチします。これは埋め込みオプション
(?w)(re_syntaxを参照してください)を指定することに相当します。
- -nocase
- expとマッチする前に、string の中の大文字が小文字に変換されます。しかし、subSpecによって指定された置き換えはstringから変換されていないオリジナルが使われます。
- -start index
- 文字列で正規表現にマッチしたい最初の文字インデックスオフセットを指定します。このスイッチを使うと、'^'は行の初めにマッチしません。\Aはindexで依然文字列の始めにマッチします。
- --
- スイッチの終わりを示します。この以降の引数は「-」で始まってもexp
と扱われます。
このコマンドは、varNameが与えられれば、見つけ出され置き換えられたマッチ範囲の数を返しします。そうでなければ、
置き換えされた後の文字列を返します。 正規表現の解釈の詳細はregexpのマニュアルエントリを参照してください。
regexp, re_syntax
match, pattern,
regular expression, substitute
Copyright © 1993 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.
Copyright © 2000 Scriptics Corporation.
Copyright © 1995-1997 Roger E. Critchlow Jr.
|