কম্পিউটার

পাইথনে RegEx মডিউল ব্যবহার করে প্যাটার্ন এবং স্ট্রিংগুলি কীভাবে মেলে


পরিচয়

RegEx মডিউলটি রেগুলার এক্সপ্রেশনের জন্য দাঁড়িয়েছে। আপনি যদি ইতিমধ্যেই প্রোগ্রামিংয়ে কাজ করে থাকেন, তাহলে আপনি ইতিমধ্যেই বেশ কয়েকবার এই শব্দটি অতিক্রম করতেন। আমরা অনুসন্ধান এবং প্রতিস্থাপনের জন্য রেগুলার এক্সপ্রেশন ব্যবহার করি, এটি বিভিন্ন টেক্সট এডিটর, সার্চ ইঞ্জিন, ওয়ার্ড প্রসেসর ইত্যাদিতে ব্যবহৃত হয়।

অন্য কথায়, এটি একটি নির্দিষ্ট প্যাটার্ন যা আপনি খুঁজছেন তা মেলাতে সাহায্য করে।

এটির একটি ভাল উদাহরণ হল কিভাবে আপনার কোলাজ ওয়েবসাইট আপনাকে শুধুমাত্র আপনার ইউনিভার্সিটির মেল এবং অন্য কোনো এক্সটেনশন ব্যবহার করতে দেয় না৷

শুরু করা

রেগুলার এক্সপ্রেশন মডিউল পাইথনের মধ্যে প্যাকেজ করা হয়। আপনাকে আলাদাভাবে ডাউনলোড এবং ইন্সটল করার দরকার নেই।

এর বিষয়বস্তু অ্যাক্সেস করা শুরু করার জন্য, আমাদের প্রথমে মডিউলটি আমদানি করতে হবে। RegEx মডিউল আমদানি করতে, আমরা ব্যবহার করি

import re

বিভিন্ন ফাংশন অন্বেষণ

RegEx মডিউলটি অনেকগুলি ফাংশন সহ আসে এবং তাদের প্রত্যেকটির মধ্যে পার্থক্য বোঝা এবং জানা অপরিহার্য৷

নিচে কিছু গুরুত্বপূর্ণ ফাংশন উল্লেখ করা হল যেগুলো আপনি যখন পাইথন প্রোজেক্টে কাজ শুরু করবেন তখন আপনি অবশ্যই ব্যবহার করবেন।

উদাহরণ

re.compile(pattern, flags) #Compiles the pattern to be matched
re.search(pattern, string, flags) #Searches through the string for exact match
re.match(pattern, string, flags) #Checks if there is a match between pattern and string
re.split(pattern, string, max, flag) #Splits the string based on the pattern provided
re.findall(pattern, string, flag) #Prints all the matches found using the pattern
re.finditer(pattern, string, flags) #Returns the string as an iterable object
re.sub(pattern, repl, string, count) #Replaces the string with the pattern
re.subn(pattern, repl, string, count) #Does the same thing as re.sub but returns it in a tuple(string and count)
re.escape(pattern) #Escapes all characters other than ascii characters

re.compile এবং re.match ফাংশনগুলি

আসুন একটি স্ট্রিং নেওয়া যাক, "হ্যালো ওয়ার্ল্ড" বলুন। এখন, উপরের স্ট্রিংটি "হ্যালো ওয়ার্ল্ড! কেমন চলছে?"

এটি করার জন্য, আমরা re.compile এবং re.match ফাংশন ব্যবহার করি।

x = re.compile(“Hello world”)
y = x.match(“Hello world! How are things going?”)
if (y):
   print("Strings match")
else:
   print("Strings do not match")

আউটপুট

Strings match

আপনি যদি ভাবছেন, কেন আমরা কম্পাইল ফাংশন ব্যবহার না করে এটি করতে পারি না, আপনি ঠিক আছেন! আমরা কম্পাইল ফাংশন ব্যবহার না করে এটি করতে পারি।

x = re.match(“Hello world”,"Hello world! How are things going?")
if (y):
   print("Strings match")
else:
   print("Strings do not match")

আউটপুট

String match

re.split ফাংশন

x = re.split("\W+","Hello,World")
print(x)
x = re.split("(\W+)","Hello,World
print(x)

আউটপুট

['Hello', 'World']
['Hello', ',', 'World']

উপরের উদাহরণে, “\W+” বলতে মূলত বাম দিক থেকে বিভক্ত হওয়া শুরু করা এবং + চিহ্নের অর্থ হল শেষ পর্যন্ত এগিয়ে যাওয়া। যখন এটি কেস 2 এর মতো বন্ধনীতে আচ্ছাদিত করা হয়, তখন এটি বিভক্ত হয় এবং কমার মতো বিরামচিহ্নও যোগ করে।

re.sub এবং re.subn ফাংশন

x = re.sub(r"there","World","Hello there. Python is fun.")
print(x)

x = re.subn(r"there","World","Hello there. Python is fun. Hello there")
print(x)

আউটপুট

Hello World. Python is fun.
('Hello World. Python is fun. Hello World', 2)

উপরের উদাহরণে, re.sub "সেখানে" শব্দটি বিদ্যমান কিনা তা পরীক্ষা করে এবং এটিকে "বিশ্ব" দিয়ে প্রতিস্থাপন করে।

সাবএন ফাংশন ঠিক একই কাজ করে কিন্তু স্ট্রিংয়ের পরিবর্তে একটি টিপল প্রদান করে এবং প্রতিস্থাপনের মোট সংখ্যা যোগ করে।

বাস্তব জগতের উদাহরণ

RegEx মডিউল ব্যবহার করার জন্য বাস্তব বিশ্বের অ্যাপ্লিকেশন/উদাহরণগুলির মধ্যে একটি হল পাসওয়ার্ড যাচাই করা৷

import re
matching_sequence = r"[0−9]"
while(True):
   x = input("Enter your password : ")
   r = re.search(matching_sequence,x)
   if (r and len(x)>6):
      print(x + " is a valid password")
   else:
      print(x + " is not a valid password. Password MUST be atleast 7 characters with atleast 1 number")
   input("Press Enter key to exit ")

আপনি একটি বৈধ পাসওয়ার্ড (অন্তত একটি নম্বর সহ 7+ অক্ষর) প্রবেশ করেছেন কিনা তা প্রোগ্রামটি পরীক্ষা করবে৷

উপসংহার

আপনি পাইথনে উপস্থিত RegEx মডিউল এবং এর মধ্যে উপস্থিত বিভিন্ন বিভিন্ন ফাংশনের মৌলিক বিষয়গুলি শিখেছেন৷

RegEx মডিউলের জন্য আরও অনেক ফাংশন এবং ব্যবহার রয়েছে। আপনি যদি আগ্রহী হন, আপনি https://docs.python.org/3/library/re.html এ তাদের অফিসিয়াল ডকুমেন্টেশন থেকে আরও পড়তে পারেন।


  1. কিভাবে পাইথন ব্যবহার করে একটি শহরের দ্রাঘিমাংশ এবং অক্ষাংশ পেতে?

  2. পাইথন এবং ম্যাটপ্লটলিব ব্যবহার করে লাইনের শেষটি কীভাবে টীকা করবেন?

  3. পাইথনে openpyxl মডিউল ব্যবহার করে এক্সেল ফাইল পড়া এবং লেখা

  4. কিভাবে পাইথনে একটি দীর্ঘ মাল্টি-লাইন স্ট্রিং তৈরি করবেন?