আমি অন্য জবাবের মন্তব্যে আগে পোস্ট করেছি এমন একটি থেকে আমার নিয়মিত অভিব্যক্তিভিত্তিক উত্তরটি বুবলী করছি। আমি মনে করি ব্যবহার reএকটা পরিষ্কার চেয়ে এই সমস্যার অনেক বেশী সুনিদৃষ্ট সমাধান str.rstrip।
>>> import re
আপনি যদি এক বা একাধিক ট্রেলিং নিউলাইন চরগুলি অপসারণ করতে চান :
>>> re.sub(r'[\n\r]+$', '', '\nx\r\n')
'\nx'
আপনি যদি সর্বত্র নিউলাইন চরগুলি অপসারণ করতে চান (কেবল অনুসরণের নয়):
>>> re.sub(r'[\n\r]+', '', '\nx\r\n')
'x'
আপনি শুধুমাত্র 1-2 পিছিয়ে থাকা সম্পর্কে newline অক্ষর সরাতে চান তাহলে (অর্থাত, \r, \n, \r\n, \n\r, \r\r, \n\n)
>>> re.sub(r'[\n\r]{1,2}$', '', '\nx\r\n\r\n')
'\nx\r'
>>> re.sub(r'[\n\r]{1,2}$', '', '\nx\r\n\r')
'\nx\r'
>>> re.sub(r'[\n\r]{1,2}$', '', '\nx\r\n')
'\nx'
আমি একটা অনুভূতি যা বেশীর ভাগ মানুষ সত্যিই এখানে চাই, শুধু মুছে ফেলার জন্য আছে এক একটি trailing newline অক্ষর সংঘটন পারেন, \r\nঅথবা \nএবং কিছুই।
>>> re.sub(r'(?:\r\n|\n)$', '', '\nx\n\n', count=1)
'\nx\n'
>>> re.sub(r'(?:\r\n|\n)$', '', '\nx\r\n\r\n', count=1)
'\nx\r\n'
>>> re.sub(r'(?:\r\n|\n)$', '', '\nx\r\n', count=1)
'\nx'
>>> re.sub(r'(?:\r\n|\n)$', '', '\nx\n', count=1)
'\nx'
(দ্য ?: হ'ল একটি নন-ক্যাপচারিং গ্রুপ তৈরি করা))
(যাই হোক এই হল না কি '...'.rstrip('\n', '').rstrip('\r', '')নেই যা এই থ্রেড উপর হুমড়ি। অন্যদের কাছে স্পষ্ট নাও হতে পারে str.rstripযতটা সম্ভব trailing অক্ষরের অনেক হিসাবে পটির, তাই মত একটি স্ট্রিং foo\n\n\nএর একটি মিথ্যা ইতিবাচক স্থাপিত হবে fooআপনি সংরক্ষণ করতে চেয়েছিলেন হতে পারে যেহেতু একটি নতুন ট্রেলিংয়ের পরে অন্য নতুন লাইনগুলি)