कहें कि मैं अपने रूबी कोड के साथ सुंदर मुद्रित एचटीएमएल कोड स्ट्रेट इनलाइन का एक बहुत बड़ा ब्लॉक रखना चाहता था। मेरी स्ट्रिंग में किसी भी स्वरूपण को खोए बिना या किसी प्रकार के gsub regex को याद किए बिना ऐसा करने का सबसे साफ तरीका क्या है।क्या रुबी में मल्टीलाइन इंडेंट स्ट्रिंग करने का कोई आसान तरीका है?
यह सब एक पंक्ति में एन्कोडिंग को पढ़ने के लिए करना आसान है, लेकिन मुश्किल है:
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
माणिक में बहुपंक्ति पाठ आसान है पढ़ने के लिए, लेकिन स्ट्रिंग कोड के बाकी के साथ इंडेंट नहीं किया जा सकता:
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
अधिकांश लोग उपरोक्त हेरडोक कोड के साथ जाते हैं, और प्रत्येक पंक्ति की शुरुआत में अतिरिक्त सफेद जगह लेने के परिणामस्वरूप एक रेगेक्स प्रतिस्थापन करते हैं। मैं एक ऐसा तरीका चाहूंगा जहां मुझे हर बार regexing की परेशानी से गुजरना पड़ेगा।
चेक आउट - इसके अलावा http://stackoverflow.com/questions/3350648/ruby-indented-multiline-strings – theglauber
- http: // stackoverflow।कॉम/प्रश्न/3772864/कैसे करें-मैं-हटा-अग्रणी-व्हाइटस्पेस-वर्ण-से-रूबी-हेरेडोक – theglauber
'मेरे पास एक स्ट्रिंग है ("जब \ n \ n घड़ी \ n स्ट्राइक \ n दस \ n") अगर यह वास्तविक न्यूलाइन अक्षरों के साथ टाइप किया जा सकता है तो यह बहुत साफ होगा। 'समझ में नहीं आता है। '" \ n "' वास्तविक न्यूलाइन अक्षर हैं। –