我想剝離我的源文件。 (請不要說爲什麼我想要剝奪我的消息來源,這不是重點:-)我找不到一個實用程序來做到這一點。 Eclipse沒有爲我做,所以我實現了我自己的。有沒有更好的方法來使用Perl進行detab(擴展標籤)?
我無法將其納入一個班輪(-e)計劃。 我來了以下,這工作做得很好。
while(<>)
{
while(/\t/) {
s/^(([^\t]{4})*)\t/$1 /;
s/^((([^\t]{4})*)[^\t]{1})\t/$1 /;
s/^((([^\t]{4})*)[^\t]{2})\t/$1 /;
s/^((([^\t]{4})*)[^\t]{3})\t/$1 /;
}
print;
}
但是,它讓我懷疑Perl--處理文本的冠軍語言 - 是否是正確的工具。代碼看起來不是很優雅。如果我不得不關閉假設tab = 8個空格的源代碼,那麼代碼看起來會更糟糕。
特別是因爲我能想到一個只有4個狀態的確定性狀態機來完成這項工作。
我有一種感覺,更優雅的解決方案存在。我錯過了一個Perl成語嗎?本着TIMTOWTDI的精神,我很好奇其他的方法。
u。
刪除標籤並不像看起來那麼容易。混合的製表符/空格縮進最終可能會打破。同樣,在標籤中隱藏空格也很容易:「\ t \ t」實際上會顯示爲兩個標籤(即通常爲4,8或16列)。 – tsee 2010-06-02 07:55:20