比方说,我想让一大块漂亮的打印html代码与我的ruby代码保持一致。在不丢失字符串中的任何格式或不必记住某种gsub正则表达式的情况下,最干净的方法是什么?
在一行中编写代码很容易,但很难阅读:
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中的多行文本更容易阅读,但字符串不能与代码的其余部分缩进:
1.times do
doc = "
<html>
<head>
<title>
Title
</title>
</head>
<body>
Body
</body>
</html>
"
ans = "Your document: %s" % [doc]
puts ans
end
例如,下面的代码缩进了我的代码,但是字符串现在每行前面有四个额外的空格:
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代码,并对结果进行正则表达式替换,去掉每行开头的额外空格。我希望有一种方法可以让我不必每次都经历正则表达式的麻烦。
https://stackoverflow.com/questions/15838974
复制相似问题