Regular Expressions – ফ্রি পাইথন কোর্স ২০২০ – ক্লাস ১৯

Regular Expressions(সংক্ষিপ্ত আকারে regexp, regex, বা re) হল পাঠ্যের নিদর্শনগুলির সাথে মিলে যাওয়ার একটি সরঞ্জাম। পাইথনে, আমাদের re মডিউল রয়েছে। Regular Expressions এর জন্য অ্যাপ্লিকেশনগুলি বিস্তৃত, তবে এগুলি মোটামুটি জটিল। সুতরাং যখন কোনও নির্দিষ্ট কাজের জন্য একটি regex ব্যবহার করার বিষয়ে চিন্তাভাবনা আসে তখন বিকল্পগুলি সম্পর্কে চিন্তাভাবনা করুন এবং একটি শেষ উপায় হিসাবে regex আসুন।

regex এর একটি উদাহরণ হল r”^(From|To|Cc).*[email protected], এখন এটি ব্যাখ্যার জন্য: ক্যারেট ^ একটি লাইনের শুরুতে পাঠ্যের সাথে মেলে। নিম্নলিখিত গ্রুপ, (From|to|Cc) দিয়ে অংশটির অর্থ পাইপ (|) দ্বারা পৃথক হওয়া শব্দগুলির একটি দিয়ে লাইনটি শুরু করতে হবে। এটিকে OR অপারেটর বলা হয় এবং গ্রুপের কোনও শব্দের সাথে লাইন শুরু হলে regex মিলবে। .*? মানে অ-লোভনীয়ভাবে নিউলাইন \ n অক্ষর ব্যতীত যে কোনও সংখ্যক চরিত্রের সাথে মেলে। অলোভী অংশটির অর্থ, যতটা সম্ভব সংখ্যক পুনরাবৃত্তি মিলানো। . অক্ষরটির অর্থ কোনও অনিউলাইন চরিত্র, * এর অর্থ 0 বা তার বেশি বার পুনরাবৃত্তি করা এবং ? চরিত্র এটিকে অলোভী বা অপুনরাবৃত্তিয় করে তোলে।

সুতরাং, নিম্নলিখিত রেখাগুলি সেই regex এর সাথে মিলবে: From: [email protected] To: !asp]<,. [email protected]

re সিনট্যাক্সের জন্য একটি সম্পূর্ণ রেফারেন্স Python Docs এ উপলভ্য।

একটি যথাযথ ইমেল-ম্যাচিং regex এর উদাহরণ হিসাবে (অনুশীলনের মতো), এটি দেখুন:

# Exercise: make a regular expression that will match an email
import re
def test_email(your_pattern):
    pattern = re.compile(your_pattern)
    emails = ["[email protected]", "[email protected]", "wha.t.`1an?ug{}[email protected]"]
    for email in emails:
        if not re.match(pattern, email):
            print("You failed to match %s" % (email))
        elif not your_pattern:
            print("Forgot to enter a pattern!")
        else:
            print("Pass")
# Your pattern here!
pattern = r"\"?([-a-zA-Z0-9.`?{}][email protected]\w+\.\w+)\"?"
test_email(pattern)

ফলাফল:

<script.py> output:
    Pass
    Pass
    Pass

Leave a Comment