首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ruby正则表达式在相邻方法之间插入新行

Ruby正则表达式在相邻方法之间插入新行
EN

Stack Overflow用户
提问于 2013-04-22 05:38:05
回答 2查看 89关注 0票数 1

我正在尝试在ruby文件中的适当位置添加新行。其中一些文件的代码如下:

代码语言:javascript
运行
复制
def abc
  ...
end
def pqr
  ...
end

我想在适当的位置添加新行,如下所示:

代码语言:javascript
运行
复制
def abc
  ...
end  

def pqr
  ...
end

这样代码就更具可读性了。我提出的初始正则表达式是带有m开关的def.*?def,它基于def关键字进行匹配。但是该正则表达式也与def关键字匹配,这些关键字已经由空行分隔。有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2013-04-22 05:48:14

您可以执行类似/end\ndef/的操作(您可能需要使用\r\n,这取决于您在编辑器中使用的行尾模式)。

这将匹配一个文字end,然后是一个行回车,紧接着是一个文字def

只需替换一个额外的换行符,它就会工作得很好!

票数 4
EN

Stack Overflow用户

发布于 2013-04-22 05:52:16

在您的线路上尝试Enumerable#slice_before

代码语言:javascript
运行
复制
File.readlines('foo.rb').slice_before(/^\s*def\b/).flat_map do |group|
  group << "\n" if group.last =~ /^\s*end\b/
  group
end.join
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16136489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档