উত্তর:
আপনার gsub এ ব্যবহার করা দরকার "\n"না '\n'। বিভিন্ন উদ্ধৃতি চিহ্নগুলি আলাদা আচরণ করে।
ডাবল উদ্ধৃতি "অক্ষর প্রসার এবং এক্সপ্রেশন ইন্টারপোলেশন অর্থাত্ অনুমতি দেয়। তারা আপনাকে পালিয়ে যাওয়া নিয়ন্ত্রণ চরগুলি \nতাদের প্রকৃত মানটিকে এই ক্ষেত্রে, নতুন লাইন উপস্থাপন করতে এবং তাদের ব্যবহারের অনুমতি দেয় #{expression}যাতে আপনি ভেরিয়েবলগুলি বুনতে পারেন এবং ভাল, আপনি পাঠ্যের মধ্যে কোনও রুবি এক্সপ্রেশন পছন্দ করতে পারেন।
অন্যদিকে, একক উদ্ধৃতিগুলি 'স্ট্রিংকে আক্ষরিক অর্থে আচরণ করে, তাই কোনও প্রসারণ, প্রতিস্থাপন, বিরক্তি বা আপনার কী নেই।
এই বিশেষ ক্ষেত্রে, এটা হয় ব্যবহার করতে ভালো .deleteবা .trমুছে ফেলতে স্ট্রিং পদ্ধতি নতুন লাইন ।
trএই কাজের জন্য একটি ভাল পছন্দ বলে মনে করি , তবে আমি যেমন বলেছি, আমি উত্তর দেওয়ার সময় একক, ডাবল উদ্ধৃতিগুলির পার্থক্যটি চিহ্নিত করা ভাল বলে মনে করি।
আপনি যখন কোনও স্ট্রিং সরিয়ে ফেলতে চান, পরিবর্তে পরিবর্তে আপনি String#delete(বা এর মিউটর সমতুল্য String#delete!) ব্যবহার করতে পারেন , যেমন:
x = "foo\nfoo"
x.delete!("\n")
x এখন "ফুফু" সমান
আপনি যখন স্ট্রিংটিকে কোনও কিছুর সাথে প্রতিস্থাপন করছেন না তার String#deleteচেয়ে এই নির্দিষ্ট ক্ষেত্রে বেশি পঠনযোগ্য gsub।
deleteএখানে বর্ণিত হিসাবে ধ্বংসাত্মক নয়। এটি একটি নতুন স্ট্রিং প্রদান করে।
আপনি যদি চান বা আপনার স্ট্রিং থেকে সমস্ত শীর্ষস্থানীয় এবং অনুসরণযোগ্য শ্বেতস্পেস সরিয়ে ফেলতে আপত্তি করেন না আপনি stripপদ্ধতিটি ব্যবহার করতে পারেন ।
" hello ".strip #=> "hello"
"\tgoodbye\r\n".strip #=> "goodbye"
এখানে উল্লিখিত হিসাবে ।
সম্পাদন করা এই প্রশ্নের জন্য মূল শিরোনাম ভিন্ন ছিল। আমার উত্তরটি মূল প্রশ্নের জন্য।
stripকেবল অগ্রণী এবং পেছনের শ্বেত স্থানটি
এর জন্য আপনার একটি রেজেেক্সের দরকার নেই। টিআর ব্যবহার করুন:
"some text\nandsomemore".tr("\n","")
replaceকেবল পরিবর্তনশীল অ্যাসাইনমেন্টের মতো স্ট্রিংটিকে নতুন করে পরিবর্তন করে; যদিও trএকটি চরিত্র অনুসারে অক্ষর বৈশ্বিক সন্ধান এবং প্রতিস্থাপন।
রুবি থেকে ব্যবহার chompবা stripফাংশন:
"abcd\n".chomp => "abcd"
"abcd\n".strip => "abcd"
stripকেবল অগ্রণী এবং পেছনের শ্বেতস্পেস