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文本上完成。 –