ভূমিকা
RegEx = Regular Expressions। প্রোগ্রামিং-এ এটি খুব পরিচিত। টেক্সট এডিটর, সার্চ ইঞ্জিন, ওয়ার্ড প্রসেসরে সার্চ অ্যান্ড রিপ্লেসের জন্য ব্যবহৃত হয়। 한마디로, আপনি যে প্যাটার্ন খুঁজছেন সেটি ম্যাচ করতে সাহায্য করে।
উদাহরণ: বিশ্ববিদ্যালয়ের ওয়েবসাইট শুধু বিশ্ববিদ্যালয়ের মেইল আলাউ করে, অন্য এক্সটেনশন নয়।
শুরু করা
RegEx মডিউল পাইথনের সাথে প্যাকেজড। ইম্পোর্ট করুন:
import re
গুরুত্বপূর্ণ ফাংশনগুলো
re.compile(pattern, flags) # প্যাটার্ন কম্পাইল
re.search(pattern, string, flags) # স্ট্রিং-এ একজাক্ট ম্যাচ সার্চ
re.match(pattern, string, flags) # প্যাটার্ন ও স্ট্রিং ম্যাচ চেক
re.split(pattern, string, max, flag) # প্যাটার্ন অনুযায়ী স্ট্রিং স্প্লিট
re.findall(pattern, string, flag) # প্যাটার্ন দিয়ে সব ম্যাচ খুঁজে বের
re.finditer(pattern, string, flags) # স্ট্রিংকে ইটারেবল অবজেক্ট হিসেবে রিটার্ন
re.sub(pattern, repl, string, count) # প্যাটার্ন দিয়ে স্ট্রিং রিপ্লেস
re.subn(pattern, repl, string, count) # re.sub-এর মতো কিন্তু টাপল রিটার্ন
re.escape(pattern) # ASCII ছাড়া সব ক্যারেক্টার এস্কেপ
re.compile ও re.match ফাংশন
"Hello world" স্ট্রিংটি "Hello world! How are things going?"-এ আছে কিনা চেক করা।
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
compile ছাড়াও সরাসরি re.match() ব্যবহার করা যায়।
re.split ফাংশন
x = re.split("\W+", "Hello,World")
print(x)
x = re.split("(\W+)", "Hello,World")
print(x)আউটপুট
['Hello', 'World']
['Hello', ',', 'World']
\W+ মানে বাম থেকে স্প্লিট শুরু করে শেষ পর্যন্ত। ব্র্যাকেটে দিলে পাঙ্কচুয়েশনও ইনক্লুড হয়।
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 "there" খুঁজে "World" দিয়ে রিপ্লেস করে। subn টাপল রিটার্ন করে (স্ট্রিং, রিপ্লেস কাউন্ট)।
রিয়েল ওয়ার্ল্ড উদাহরণ: পাসওয়ার্ড ভ্যালিডেশন
import re
matching_sequence = r"[0-9]"
while True:
x = input("আপনার পাসওয়ার্ড দিন: ")
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("Exit করতে Enter চাপুন ")
প্রোগ্রাম চেক করে পাসওয়ার্ডে কমপক্ষে ১টি নম্বর ও ৭+ ক্যারেক্টার আছে কিনা।
উপসংহার
RegEx মডিউলের বেসিকস শিখলেন। আরও ফাংশন ও ব্যবহার জন্য: https://docs.python.org/3/library/re.html