0
を期待通りに動作していない私はそれが出力として/tmp/16.1.o.00.01/run.c
印刷され、以下のコードTCL:。
set src "/tmp/16.10c.00.01/run.c"
regsub "\.c" $src ".o" obj
puts "$obj"
を持っています。 期待される出力は/tmp/16.10c.00.01/run.o
です。 "\.c$"
としておくと、期待通りに動作しています。 最初のコードで何が間違っていますか?正規表現で
.c
以上がc
に続く任意の文字を意味します。何が悪い
がどのように正規表現で 『\ .C』 – Rupesh
@Rupeshから「.C」異なっているが、 '.'それは(任意の1文字に一致しますワイルドカード)。ドットをマッチさせたい場合は、 '.'をエスケープする必要があります。そうしないとワイルドカードとして動作します。 – Jerry
私はあなたが何を言おうとしているのか理解しました。私の視点は二重引用符からのみです。ドットをエスケープする二重引用符では、 "\"を入れなければなりません。エスケープするには\\を "\\"として書き直す必要があります。私の理解は正規表現 ".c"と "\ .c"は機能面で同じです。彼らは異なっていますが。私は正しい? – Rupesh