পাইথনে রেগুলার এক্সপ্রেশনে সিম্বল গ্রুপ
বিশেষ কমান্ড রয়েছে যা
সিম্বলের সম্পূর্ণ গ্রুপ নির্বাচন করতে
সক্ষম। \d কমান্ডটি 0 থেকে
9 পর্যন্ত সংখ্যা বোঝায়।
\w কমান্ডটি সংখ্যা, ল্যাটিন বর্ণ বা
আন্ডারস্কোর চিহ্ন বোঝায়। \s কমান্ডটি
স্পেস বা হোয়াইটস্পেস সিম্বল বোঝায়: স্পেস,
নতুন লাইন, ট্যাব। কমান্ডের অর্থ উল্টানো
যেতে পারে, বড় হাতের অক্ষর লিখে:
উদাহরণস্বরূপ, যদি \d - সংখ্যা হয়, তবে
\D - সংখ্যা নয়।
উদাহরণ
আসুন সমস্ত সংখ্যা খুঁজে বের করি:
txt = '1 12 123'
res = re.sub('\d', '!', txt)
print(res)
কোড এক্সিকিউট করার ফলাফল:
'! !! !!!'
উদাহরণ
পুনরাবৃত্তি অপারেটররা কমান্ড-গ্রুপগুলিকে
একটি সম্পূর্ণ হিসাবে বিবেচনা করে, অর্থাৎ
গ্রুপিং ব্র্যাকেটের প্রয়োজন নেই। পরবর্তী
উদাহরণে, সার্চ প্যাটার্নটি দেখতে এরকম:
0 থেকে 9 পর্যন্ত সংখ্যা
এক বা একাধিক বার:
txt = '1 12 123 abc @@@'
res = re.sub('\d+', '!', txt)
print(res)
কোড এক্সিকিউট করার ফলাফল:
'! ! ! abc @@@'
উদাহরণ
পরবর্তী উদাহরণে, সার্চ প্যাটার্নটি দেখতে
এরকম: যেকোনো জিনিস এক বা একাধিক বার,
কিন্তু 0 থেকে 9 পর্যন্ত সংখ্যা
নয়:
txt = '123abc3@@'
res = re.sub('\D+', '!', txt)
print(res)
কোড এক্সিকিউট করার ফলাফল:
'123!3!'
উদাহরণ
এই উদাহরণে, সার্চ প্যাটার্নটি দেখতে এরকম: হোয়াইটস্পেস সিম্বল একবার:
txt = '1 12 123 abc @@@'
res = re.sub('\s', '!', txt)
print(res)
কোড এক্সিকিউট করার ফলাফল:
'1!12!123!abc!@@@'
উদাহরণ
এই উদাহরণে, সার্চ প্যাটার্নটি দেখতে
এরকম: নন-হোয়াইটস্পেস সিম্বল এক বা একাধিক
বার। স্পেস দ্বারা বিভক্ত সমস্ত সাবস্ট্রিং
'!' দ্বারা প্রতিস্থাপিত হবে:
txt = '1 12 123 abc @@@'
res = re.sub('\S+', '!', txt)
print(res)
কোড এক্সিকিউট করার ফলাফল:
'! ! ! ! !'
উদাহরণ
এই উদাহরণে, সার্চ প্যাটার্নটি দেখতে
এরকম: সংখ্যা বা বর্ণ এক বা একাধিক
বার। সংখ্যা এবং বর্ণ নিয়ে গঠিত সমস্ত সাবস্ট্রিং
'!' দ্বারা প্রতিস্থাপিত হবে:
txt = '1 12 123a Abc @@@'
res = re.sub('\w+', '!', txt)
print(res)
কোড এক্সিকিউট করার ফলাফল:
'! ! ! ! @@@'
উদাহরণ
এই উদাহরণে, সার্চ প্যাটার্নটি দেখতে
এরকম: না সংখ্যা এবং না বর্ণ এক বা একাধিক
বার। আমাদের ক্ষেত্রে '@@@' এবং সমস্ত স্পেস
(সেগুলিও তো সংখ্যা বা বর্ণ নয়)
এই সংজ্ঞার অধীনে পড়ে।
লক্ষ্য করুন যে শেষে একটি
'!' রয়েছে - এটিতে ' @@@' স্ট্রিংটি রূপান্তরিত হয়েছে
- সামনের দিকে একটি স্পেস সহ:
txt = '1 12 123 Abc @@@'
res = re.sub('\W+', '!', txt)
print(res)
কোড এক্সিকিউট করার ফলাফল:
'1!12!123!Abc!'
ব্যবহারিক সমস্যা
একটি স্ট্রিং দেওয়া হয়েছে:
txt = 'a1a a2a a3a a4a a5a aba aca'
একটি রেগুলার এক্সপ্রেশন লিখুন যা সেই স্ট্রিংগুলি খুঁজে পাবে,
যেখানে প্রান্তে 'a' বর্ণ রয়েছে,
এবং তাদের মধ্যে একটি সংখ্যা রয়েছে।
একটি স্ট্রিং দেওয়া হয়েছে:
txt = 'a1a a22a a333a a4444a a55555a aba aca'
একটি রেগুলার এক্সপ্রেশন লিখুন যা সেই স্ট্রিংগুলি খুঁজে পাবে,
যেখানে প্রান্তে 'a' বর্ণ রয়েছে,
এবং তাদের মধ্যে যেকোনো সংখ্যক সংখ্যা রয়েছে।
একটি স্ট্রিং দেওয়া হয়েছে:
txt = 'aa a1a a22a a333a a4444a a55555a aba aca'
একটি রেগুলার এক্সপ্রেশন লিখুন যা সেই স্ট্রিংগুলি খুঁজে পাবে,
যেখানে প্রান্তে 'a' বর্ণ রয়েছে,
এবং তাদের মধ্যে যেকোনো সংখ্যক সংখ্যা রয়েছে (এমনকি
শূন্য সংখ্যাও, অর্থাৎ স্ট্রিং
'aa')।
একটি স্ট্রিং দেওয়া হয়েছে:
txt = 'avb a1b a2b a3b a4b a5b abb acb'
একটি রেগুলার এক্সপ্রেশন লিখুন যা নিম্নলিখিত ধরনের স্ট্রিং
খুঁজে পাবে: প্রান্তে 'a' এবং
'b' বর্ণ রয়েছে, এবং তাদের মধ্যে -
সংখ্যা নয় এবং স্পেস নয়।
একটি স্ট্রিং দেওয়া হয়েছে:
txt = 'ave a#b a2b a$b a4b a5b a-b acb'
একটি রেগুলার এক্সপ্রেশন লিখুন যা নিম্নলিখিত ধরনের স্ট্রিং
খুঁজে পাবে: প্রান্তে 'a' এবং
'b' বর্ণ রয়েছে, এবং তাদের মধ্যে -
বর্ণ নয়, সংখ্যা নয় এবং স্পেস নয়।
একটি স্ট্রিং দেওয়া হয়েছে:
txt = 'ave a#a a2a a$a a4a a5a a-a aca'
একটি রেগুলার এক্সপ্রেশন লিখুন যা সমস্ত
স্পেসকে '!' দ্বারা প্রতিস্থাপন করবে।