首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Ruby中有没有一种简单的方法来处理多行缩进字符串?

在Ruby中有没有一种简单的方法来处理多行缩进字符串?
EN

Stack Overflow用户
提问于 2013-04-06 00:30:34
回答 3查看 22.1K关注 0票数 20

比方说,我想让一大块漂亮的打印html代码与我的ruby代码保持一致。在不丢失字符串中的任何格式或不必记住某种gsub正则表达式的情况下,最干净的方法是什么?

在一行中编写代码很容易,但很难阅读:

代码语言:javascript
复制
1.times do
  # Note that the spaces have been changed to _ so that they are easy to see here.
  doc = "\n<html>\n__<head>\n____<title>\n______Title\n____</title>\n__</head>\n__<body>\n____Body\n__</body>\n</html>\n"
  ans = "Your document: %s" % [doc]
  puts ans
end

ruby中的多行文本更容易阅读,但字符串不能与代码的其余部分缩进:

代码语言:javascript
复制
1.times do
  doc = "
<html>
  <head>
    <title>
      Title
    </title>
  </head>
  <body>
    Body
  </body>
</html>
"
  ans = "Your document: %s" % [doc]
  puts ans
end

例如,下面的代码缩进了我的代码,但是字符串现在每行前面有四个额外的空格:

代码语言:javascript
复制
1.times do
  doc = <<-EOM

    <html>
      <head>
        <title>
          Title
        </title>
      </head>
      <body>
        Body
      </body>
    </html>
  EOM
  ans = "Your document: %s" % [doc]
  puts ans
end

大多数人使用上面的HEREDOC代码,并对结果进行正则表达式替换,去掉每行开头的额外空格。我希望有一种方法可以让我不必每次都经历正则表达式的麻烦。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15838974

复制
相关文章

相似问题

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