如何在ruby中将代码注释与正则表达式匹配?
下面给出了示例代码如何在ruby中将代码注释与正则表达式匹配?,ruby,regex,Ruby,Regex,下面给出了示例代码 get => "hello#index" # comments 如何编辑“评论” 有Ruby正则表达式编辑器用于测试。/#comments/可以很好地工作假设在不现实的情况下,您希望在可以使用的最后一个哈希之后匹配任何文本 /#[^#]*$/ 但不能保证最后一个散列实际上开始了注释。例如,如果一行在字符串文字中有一个散列,或者它本身在%w中用作分隔符 %w# abc def # 或者被用在类似的事情上 dog = "spike" %w{#dog rat
get => "hello#index" # comments
如何编辑“评论”
有Ruby正则表达式编辑器用于测试。
/#comments/
可以很好地工作假设在不现实的情况下,您希望在可以使用的最后一个哈希之后匹配任何文本
/#[^#]*$/
但不能保证最后一个散列实际上开始了注释。例如,如果一行在字符串文字中有一个散列,或者它本身在%w
中用作分隔符
%w# abc def #
或者被用在类似的事情上
dog = "spike"
%w{#dog rat}
那么你将很难想出一个正则表达式。我会使用ruby解析器。听起来我应该使用ruby synax解析器来做这件事。我正在写一个ruby模糊器。我确实认为语法分析器是删除注释的唯一可靠方法,因为哈希符号可以出现在许多不同的上下文中,包括
#{}
表单和字符串文本以及%w{}
表单中,我不确定正则表达式在总体上是否足够强大(尽管可能需要一些努力)。但是,您正在编写一个模糊器这一事实意味着您肯定想要解析器的全部功能,以便能够执行各种各样的转换。这些转换应该在抽象语法树上完成,而不是在(线性)Ruby文本上完成。