:私はから機能を参照する場所
regsub -all {"Requested,"} $arg {"Requested"} arg
これ
です。あなたは実際に文字列
"Requested,"
(引用符を含む)をチェックしていますが、それはあなたが望むものではありません。どちらか試してみてください曲がりくねっ-ブラケット(
}
)または二重引用符(
"
)を取り払う:
set arg "TEST #### Requested, NOT AVAILABLE psy #;"
regsub -all "Requested," $arg "Requested" arg
あなたはを取り除くために必要なすべてがコンマであれば、あなたは(だけでそれを置き換えることを置き換える/検索することができます空の文字列""
):コメンターが述べたよう
regsub -all "," $arg "" arg
又は
regsub -all {,} $arg {} arg
、後者は一般的な場合、SIに良いかもしれ正規表現には多くのバックスラッシュ(/
)が含まれていて、{}
の角括弧には、""
の引用と同じように、大量の余分なバックスラッシュエスケープが必要ありません。あなたがグローバル削除をしたくない場合は正規表現は、[string map]
set arg [string map { , "" } $arg]
ある
私は(ほとんど)常にで正規表現を置くことをお勧めします中括弧;彼らは多くのバックスラッシュを含んでいる傾向があります(特に曖昧ではない場合は特に)。中括弧は書きやすくします。それらを引用符で囲むことは、バックスラッシュにつながります。 –
@DonalFellows良い点。それを反映するように答えが更新されました。 –