পাইথনে প্রতিস্থাপন স্ট্রিংয়ে পকেট
sub পদ্ধতির সাথে কাজ করার সময়, যদি
রেগুলার এক্সপ্রেশনে কিছু পকেটে রাখতে হয়,
তবে প্রতিস্থাপন স্ট্রিংয়ে ডবল ব্যাকস্ল্যাশ \
এবং পকেটের নম্বর লিখে সেই পকেটের বিষয়বস্তু সন্নিবেশ করা যায়। উদাহরণস্বরূপ, \1 -
প্রথম পকেট, \2 - দ্বিতীয় পকেট
এবং তাই।
এটি কেন প্রয়োজন এবং কীভাবে এটি ব্যবহার করতে হয় আসুন উদাহরণের মাধ্যমে দেখি।
উদাহরণ
আসুন সমস্ত সংখ্যা খুঁজে বের করি এবং তাদের পরিবর্তে সেই সংখ্যাগুলি, তবে বন্ধনীর মধ্যে, বসাই। এজন্য পাওয়া সমস্ত সংখ্যাকে তাদের নিজেদের দ্বারা, কিন্তু বন্ধনীতে রেখে প্রতিস্থাপন করা হবে:
txt = '1 23 456 xax'
res = re.sub('(\d+)', '(\1)', txt)
print(res)
ফলস্বরূপ ভেরিয়েবলে নিম্নলিখিতটি লিখিত হবে:
'(1) (23) (456) xax'
উদাহরণ
আসুন এমন সমস্ত স্ট্রিং খুঁজে বের করি যা
সংখ্যাকে এর চারপাশে আইক্স সহ উপস্থাপন করে
এবং এই সংখ্যাগুলিকে তাদের নিজেদের দ্বারা প্রতিস্থাপন করি, তবে '!' চিহ্ন
দিয়ে ঘিরে:
txt = 'x1x x23x x456x xax'
res = re.sub('x(\d+)x', '!\1!', txt)
print(res)
ফলস্বরূপ ভেরিয়েবলে নিম্নলিখিতটি লিখিত হবে:
'!1! !23! !456! xax'
উদাহরণ
আসুন নিম্নলিখিত সমস্যাটির সমাধান করি: একটি স্ট্রিং দেওয়া আছে
'aaa@bbb ccc@ddd' - অক্ষর, তারপর
@ চিহ্ন, তারপর অক্ষর। 'aaa@bbb' উপস্ট্রিং-এ
'@'-এর আগে এবং পরে অক্ষরগুলিকে বিনিময় করতে হবে:
txt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)
print(res)
ফলস্বরূপ ভেরিয়েবলে নিম্নলিখিতটি লিখিত হবে:
'bbb@aaa ccc@ddd'
ব্যবহারিক সমস্যা
একটি স্ট্রিং দেওয়া আছে:
txt = '12 34 56 78'
সমস্ত দুই-অঙ্কের সংখ্যায় অঙ্কগুলি বিনিময় করুন।
একটি তারিখ সহ স্ট্রিং দেওয়া আছে:
txt = '31.12.2025'
এই তারিখটিকে '2025.12.31'-এ রূপান্তর করুন।