tcl/tkリファレンス-文字列操作regsub
.
.
名前regsub-正規表現モードマッチングに基づいて置換操作を完了
構文
regsub ?
switches?
exp string subSpec ?
varName?
このコマンドペアについて説明します.
stringは正規表現マッチングを行い、文字列をコピーします.
varNameにない場合
varNameは文字列を返します.(正規表現構文一致説明
re_syntaxで.)マッチングに成功したら、マッチングした部分を
サブスペック後にコピー
varNameで、
subSpecには「&」と「/0」が含まれており、一致する文字列に置き換えられます.「/n」が含まれるとワードパターン一致する文字列に置き換えられます.反スラッシュを1つ追加すると「&」、「/0」、「/n」と「/」を解釈するのを阻止します.これを防止するために、
subSpecは括弧に入れるとより安全です.
regexpの最初の変数が-で始まると、オプションとして処理され、使用できるオプションは次のとおりです.
-all
正規表現に一致する文字列の部分はすべて一致し、すべて置換されます.このオプションがなければ、最初の一致する文字列だけが置換されます.にある
-allオプションでは、一致する文字列はすべて一致状況に応じて「&」と「/n」の代替が行われます.
-expanded
正規表現に拡張構文を使用すると、スペースキーやコメントは無視され、指定されます.
(?x)埋め込みオプションは同じです(参照
re_syntaxヘルプマニュアル).
-line
改行は敏感です.改行文字は文字列の終端文字で、このフラグビットを使用すると、
[^と
.改行は一致しません.改行がある場合は、
^と
$は空の文字列に一致し、このフラグは同時に指定されたものに相当します.
-linestopと
-lineanchor、(?n)埋め込みオプションと同じ(参照)
re_syntaxヘルプマニュアル).
-linestop
使う
[^と
.改行文字は一致しません.
(?p)埋め込みオプションは同じです(参照
re_syntaxヘルプマニュアル).
-lineanchor
使う
^と
$の行為は行に向かう方法に変わり、
(?w)埋め込みオプションは同じです(参照
re_syntaxヘルプマニュアル).
-nocase
大文字でも小文字として扱われ、大文字と小文字を区別しないことに相当します.
-start
index
一致を開始するインデックスの場所を指定します.このオプションを使用すると、
^文字列の先頭から一致するのではなく、指定したインデックス位置から一致します.
--
オプションの終了を示します.このオプションは主に
expが-で始まるとき.
varNameが指定されている場合、このコマンドは一致と置換の数を返し、指定されていない場合は置換後の文字列を返します.regexpコマンドを参照してください.
使用例
barは文字列内のすべての
foo:
一致する文字列を二重引用符で囲みます.
regsubコマンドとsubstコマンドを使用して、すべての非ASCIIとTclの特殊な意味の文字を/u変換します.
.
名前regsub-正規表現モードマッチングに基づいて置換操作を完了
構文
regsub ?
switches?
exp string subSpec ?
varName?
このコマンドペアについて説明します.
stringは正規表現マッチングを行い、文字列をコピーします.
varNameにない場合
varNameは文字列を返します.(正規表現構文一致説明
re_syntaxで.)マッチングに成功したら、マッチングした部分を
サブスペック後にコピー
varNameで、
subSpecには「&」と「/0」が含まれており、一致する文字列に置き換えられます.「/n」が含まれるとワードパターン一致する文字列に置き換えられます.反スラッシュを1つ追加すると「&」、「/0」、「/n」と「/」を解釈するのを阻止します.これを防止するために、
subSpecは括弧に入れるとより安全です.
regexpの最初の変数が-で始まると、オプションとして処理され、使用できるオプションは次のとおりです.
-all
正規表現に一致する文字列の部分はすべて一致し、すべて置換されます.このオプションがなければ、最初の一致する文字列だけが置換されます.にある
-allオプションでは、一致する文字列はすべて一致状況に応じて「&」と「/n」の代替が行われます.
-expanded
正規表現に拡張構文を使用すると、スペースキーやコメントは無視され、指定されます.
(?x)埋め込みオプションは同じです(参照
re_syntaxヘルプマニュアル).
-line
改行は敏感です.改行文字は文字列の終端文字で、このフラグビットを使用すると、
[^と
.改行は一致しません.改行がある場合は、
^と
$は空の文字列に一致し、このフラグは同時に指定されたものに相当します.
-linestopと
-lineanchor、(?n)埋め込みオプションと同じ(参照)
re_syntaxヘルプマニュアル).
-linestop
使う
[^と
.改行文字は一致しません.
(?p)埋め込みオプションは同じです(参照
re_syntaxヘルプマニュアル).
-lineanchor
使う
^と
$の行為は行に向かう方法に変わり、
(?w)埋め込みオプションは同じです(参照
re_syntaxヘルプマニュアル).
-nocase
大文字でも小文字として扱われ、大文字と小文字を区別しないことに相当します.
-start
index
一致を開始するインデックスの場所を指定します.このオプションを使用すると、
^文字列の先頭から一致するのではなく、指定したインデックス位置から一致します.
--
オプションの終了を示します.このオプションは主に
expが-で始まるとき.
varNameが指定されている場合、このコマンドは一致と置換の数を返し、指定されていない場合は置換後の文字列を返します.regexpコマンドを参照してください.
使用例
barは文字列内のすべての
foo:
regsub -all {/<foo/>} $string bar string
一致する文字列を二重引用符で囲みます.
regsub -nocase {/<interesting/>} $string {"&"} string
regsubコマンドとsubstコマンドを使用して、すべての非ASCIIとTclの特殊な意味の文字を/u変換します.
# “ ”
set RE {[][{};#///$/s/u0100-/uffff]}
# tcl
set substitution {[format ////u%04x [scan "//&" %c]]}
# subst format
set quoted [subst [regsub -all $RE $string $substitution]]