2011-09-07 70 views

回答

2

假設在任何你想要的文字最後散後,在所有符合現實情況下,你可以使用

/#[^#]*$/ 

但也不能保證最後的散列實際上開始評論。如果某行有一個字符串字面內部散列或本身被用作一個%w一個分隔符,例如

%w# abc def # 

或某事像這樣使用

dog = "spike" 
%w{#dog rat} 

,那麼你將有一個艱難的試圖想出一個正則表達式。我會用一個紅寶石解析器。

+0

這聽起來像我應該使用ruby synax解析器來做這件事情。我正在寫一個紅寶石混淆器。 – qichunren

+0

確實。我認爲語法分析器是刪除評論的唯一可靠方法,因爲哈希符號可以出現在許多不同的上下文中,包括'#{}'形式和字符串文字和'%w {}'形式,我不確定一般而言,正則表達式足夠強大(儘管可能會付出一些努力)。但是,您正在編寫混淆器的事實意味着您絕對需要解析器的全部功能,因此您可以執行各種各樣的轉換。這些轉換**應該在抽象語法樹而不是(線性)Ruby文本上完成。 –

-1

/# comments/將做工精細

相關問題