আমি অন্য জবাবের মন্তব্যে আগে পোস্ট করেছি এমন একটি থেকে আমার নিয়মিত অভিব্যক্তিভিত্তিক উত্তরটি বুবলী করছি। আমি মনে করি ব্যবহার 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
আপনি সংরক্ষণ করতে চেয়েছিলেন হতে পারে যেহেতু একটি নতুন ট্রেলিংয়ের পরে অন্য নতুন লাইনগুলি)