2012-05-05 4 views
2

変数にファイルを保存しました。たとえば、$bufferです。 $bufferの末尾に"\n"があります。私はそれを空の値に置き換えたい。試しましたregexpを使って変数の最後に nをマッチングする方法

regexp "\n$" $buffer 

コードはTCLにありますが、私はPerlやTCLのどちらでそれをやることができるかを知る必要があります。

答えて

-2

これが機能するかどうかを確認してください。 Perlで

regsub "\n$" "" $buffer 

For further reading

+0

は働いていません。私は – Nitesh

+0

をチェックしました。私はtclインタプリタを持っていないので、本当にチェックできません。パターンを入れて、** {** ** ** ** ** ** **を使わずにトークンを入れてみてください。** – tuxuday

1

$buffer =~ s/\n$//; 

=~が結合オペレータ、sは、置換演算子であり、/オペランドの区切り文字であるので、\n$は、空の文字列に置き換えられ。

chomp($buffer)でも同じことが達成されます。

+0

私の匿名希望者に:OPは解決策を求めました* "PerlまたはTCLで*"。 – delicateLatticeworkFever

5
string trim $buffer \n 

manualを参照してください。

+0

オリジナル'set buffer [string trim $ buffer \ n] ' –

2

方法について:Perlのchompのでregsub {\n$} $buffer ""

+0

置換された文字列を' buffer'変数に書き戻す 'regsub {\ n $} $ buffer'" buffer "がさらに良いでしょう。 –

3

は、レコードの終わり区切りを削除します。だから、 '\ n'を削除するには、chomp $bufferが必要です。 @Borodinが言ったように

2

chompは、おそらく最高ですが、あなたはまた、唯一の文字列の末尾に一致し\zを使用することができます。

$buffer =~ s/\n\z//; 
関連する問題