রেগুলার এক্সপ্রেশন টেস্টার

প্র্যাকটিস প্রোজেক্টস - পাইথন ৩ (Python 3) - Computer Programming

186

রেগুলার এক্সপ্রেশন টেস্টার একটি টুল যা ব্যবহারকারীদের নির্দিষ্ট রেগুলার এক্সপ্রেশন দিয়ে টেক্সট প্যাটার্ন ম্যাচ করার জন্য সহজে পরীক্ষা করার সুযোগ দেয়। Python এবং Tkinter ব্যবহার করে আমরা সহজেই একটি GUI ভিত্তিক রেগুলার এক্সপ্রেশন টেস্টার তৈরি করতে পারি।


প্রজেক্ট: রেগুলার এক্সপ্রেশন টেস্টার

ফিচারস

  1. রেগুলার এক্সপ্রেশন ইনপুট: ব্যবহারকারী তাদের রেগুলার এক্সপ্রেশন ইনপুট দিতে পারবেন।
  2. টেক্সট ইনপুট: ব্যবহারকারী টেক্সট ইনপুট দিতে পারবেন, যেখানে প্যাটার্ন পরীক্ষা করা হবে।
  3. ম্যাচ ফলাফল দেখানো: ম্যাচের ফলাফল দেখানো এবং ম্যাচগুলির তালিকা প্রদর্শন করা।
  4. ইরর হ্যান্ডলিং: ভুল রেগুলার এক্সপ্রেশন ইনপুট দিলে এরর মেসেজ প্রদর্শন করা।

প্রয়োজনীয় লাইব্রেরি

  • tkinter: GUI তৈরি করতে।
  • re: রেগুলার এক্সপ্রেশন মডিউল যা Python-এ বিল্ট-ইন।

Python-এ tkinter এবং re লাইব্রেরি বিল্ট-ইন থাকে, তাই আলাদা করে ইনস্টলেশনের প্রয়োজন নেই।


ধাপ ১: Tkinter এবং অন্যান্য মডিউল ইম্পোর্ট করা

import tkinter as tk
from tkinter import messagebox
import re

ধাপ ২: Tkinter GUI সেটআপ করা

Tkinter GUI তৈরি করে ব্যবহারকারীর রেগুলার এক্সপ্রেশন এবং টেক্সট ইনপুট দেয়ার ব্যবস্থা করা হবে।

# মেইন Tkinter উইন্ডো তৈরি
root = tk.Tk()
root.title("Regular Expression Tester")
root.geometry("600x400")

# রেগুলার এক্সপ্রেশন লেবেল এবং এন্ট্রি ফিল্ড
tk.Label(root, text="Regular Expression:", font=("Arial", 12)).pack(pady=5)
regex_entry = tk.Entry(root, font=("Arial", 12), width=50)
regex_entry.pack(pady=5)

# টেক্সট লেবেল এবং টেক্সট বক্স
tk.Label(root, text="Text to Test:", font=("Arial", 12)).pack(pady=5)
text_entry = tk.Text(root, font=("Arial", 12), width=50, height=10)
text_entry.pack(pady=5)

ধাপ ৩: রেগুলার এক্সপ্রেশন ম্যাচিং ফাংশন তৈরি করা

এই ফাংশনটি ইনপুট রেগুলার এক্সপ্রেশন এবং টেক্সট ব্যবহার করে ম্যাচ পরীক্ষা করবে।

def test_regex():
    regex = regex_entry.get()
    text = text_entry.get("1.0", tk.END)

    try:
        pattern = re.compile(regex)
        matches = pattern.findall(text)

        if matches:
            result = "Matches found:\n" + "\n".join(matches)
        else:
            result = "No matches found."
        
        result_label.config(text=result)
    except re.error as e:
        messagebox.showerror("Error", f"Invalid regular expression: {e}")

ধাপ ৪: Tkinter উইজেট এবং বাটন তৈরি করা

Tkinter GUI তে রেগুলার এক্সপ্রেশন টেস্ট করার জন্য বাটন এবং ফলাফল দেখানোর জন্য একটি লেবেল তৈরি করা হবে।

# টেস্ট বাটন
test_button = tk.Button(root, text="Test", command=test_regex, font=("Arial", 12))
test_button.pack(pady=10)

# ফলাফল দেখানোর জন্য লেবেল
result_label = tk.Label(root, text="", font=("Arial", 12), justify="left")
result_label.pack(pady=10)

ধাপ ৫: Tkinter মেইন লুপ চালানো

root.mainloop()

পূর্ণ কোড একসাথে

import tkinter as tk
from tkinter import messagebox
import re

# মেইন Tkinter উইন্ডো তৈরি
root = tk.Tk()
root.title("Regular Expression Tester")
root.geometry("600x400")

# রেগুলার এক্সপ্রেশন লেবেল এবং এন্ট্রি ফিল্ড
tk.Label(root, text="Regular Expression:", font=("Arial", 12)).pack(pady=5)
regex_entry = tk.Entry(root, font=("Arial", 12), width=50)
regex_entry.pack(pady=5)

# টেক্সট লেবেল এবং টেক্সট বক্স
tk.Label(root, text="Text to Test:", font=("Arial", 12)).pack(pady=5)
text_entry = tk.Text(root, font=("Arial", 12), width=50, height=10)
text_entry.pack(pady=5)

# রেগুলার এক্সপ্রেশন ম্যাচিং ফাংশন
def test_regex():
    regex = regex_entry.get()
    text = text_entry.get("1.0", tk.END)

    try:
        pattern = re.compile(regex)
        matches = pattern.findall(text)

        if matches:
            result = "Matches found:\n" + "\n".join(matches)
        else:
            result = "No matches found."
        
        result_label.config(text=result)
    except re.error as e:
        messagebox.showerror("Error", f"Invalid regular expression: {e}")

# টেস্ট বাটন
test_button = tk.Button(root, text="Test", command=test_regex, font=("Arial", 12))
test_button.pack(pady=10)

# ফলাফল দেখানোর জন্য লেবেল
result_label = tk.Label(root, text="", font=("Arial", 12), justify="left")
result_label.pack(pady=10)

root.mainloop()

কোড ব্যাখ্যা

  1. regex_entry: ব্যবহারকারীর ইনপুট হিসেবে রেগুলার এক্সপ্রেশন ইনপুট করার জন্য Entry উইজেট।
  2. text_entry: টেক্সট ইনপুট করার জন্য Text উইজেট, যেখানে প্যাটার্ন পরীক্ষা করা হবে।
  3. test_regex() ফাংশন: এই ফাংশনটি রেগুলার এক্সপ্রেশন এবং টেক্সট ইনপুট গ্রহণ করে এবং re.compile()findall() ব্যবহার করে ম্যাচ খুঁজে বের করে।
  4. Error Handling: ভুল রেগুলার এক্সপ্রেশন দিলে try-except ব্লকের মাধ্যমে এরর প্রদর্শন করা হয়।
  5. result_label: ম্যাচের ফলাফল প্রদর্শনের জন্য একটি লেবেল যেখানে ম্যাচগুলো আলাদা করে প্রদর্শন করা হয়।

উপসংহার

এই রেগুলার এক্সপ্রেশন টেস্টারটি একটি দরকারী টুল, যা ব্যবহারকারীদের বিভিন্ন প্যাটার্ন পরীক্ষা করতে সাহায্য করে। এই টুলে আরও উন্নতি করা সম্ভব যেমন:

  • মাল্টিপল ম্যাচিং অপশন: match, search এবং sub অপশন।
  • রেজাল্টে ম্যাচ হাইলাইট করা
  • রেগুলার এক্সপ্রেশন ইতিহাস: আগের রেগুলার এক্সপ্রেশন সংরক্ষণ।

এই প্রজেক্টটি Python-এ GUI প্রোগ্রামিং এবং রেগুলার এক্সপ্রেশন সম্পর্কে দক্ষতা বৃদ্ধি করতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...