0
下面的示例代碼中給出如何在ruby中將代碼註釋與正則表達式匹配?
get => "hello#index" # comments
如何macth '#意見'?
有Ruby正則表達式編輯器http://rubular.com/進行測試。
下面的示例代碼中給出如何在ruby中將代碼註釋與正則表達式匹配?
get => "hello#index" # comments
如何macth '#意見'?
有Ruby正則表達式編輯器http://rubular.com/進行測試。
假設在任何你想要的文字最後散後,在所有符合現實情況下,你可以使用
/#[^#]*$/
但也不能保證最後的散列實際上開始評論。如果某行有一個字符串字面內部散列或本身被用作一個%w
一個分隔符,例如
%w# abc def #
或某事像這樣使用
dog = "spike"
%w{#dog rat}
,那麼你將有一個艱難的試圖想出一個正則表達式。我會用一個紅寶石解析器。
/# comments/
將做工精細
這聽起來像我應該使用ruby synax解析器來做這件事情。我正在寫一個紅寶石混淆器。 – qichunren
確實。我認爲語法分析器是刪除評論的唯一可靠方法,因爲哈希符號可以出現在許多不同的上下文中,包括'#{}'形式和字符串文字和'%w {}'形式,我不確定一般而言,正則表達式足夠強大(儘管可能會付出一些努力)。但是,您正在編寫混淆器的事實意味着您絕對需要解析器的全部功能,因此您可以執行各種各樣的轉換。這些轉換**應該在抽象語法樹而不是(線性)Ruby文本上完成。 –