বাংলায় পাইথন
  • পরিচিতি
  • ইনস্টলেশন
  • ব্যাসিক কনসেপ্ট
    • সাধারণ কিছু অপারেশন
    • আরও কিছু নিউমেরিক অপারেশন
    • স্ট্রিং
    • ব্যাসিক ইনপুট আউটপুট
    • স্ট্রিং অপারেশন
    • টাইপ কনভার্সন
    • ভ্যারিয়েবল
    • ইনপ্লেস অপারেটর
    • এডিটর এর ব্যবহার
  • কন্ট্রোল স্ট্রাকচার
    • বুলিয়ান
    • if স্টেটমেন্ট
    • else স্টেটমেন্ট
    • বুলিয়ান লজিক
    • অপারেটর প্রেসিডেন্স
    • while লুপ
    • লিস্ট
    • লিস্ট অপারেশন
    • লিস্ট ফাংশন
    • রেঞ্জ
    • for লুপ
  • গুরুত্বপূর্ণ ডাটা টাইপ
    • None
    • ডিকশনারি
    • ডিকশনারি ফাংশন
    • টাপল
    • আবারও লিস্ট
    • লিস্ট ও ডিকশনারি কম্প্রিহেনশন
  • ফাংশন ও মডিউল
    • কোডের পুনব্যবহার
    • ফাংশন
    • ফাংশন আর্গুমেন্ট
    • ফাংশন রিটার্ন
    • কমেন্ট ও ডক স্ট্রিং
    • অবজেক্ট হিসেবে ফাংশন
    • মডিউল
    • স্ট্যান্ডার্ড লাইব্রেরী
    • pip
  • ফাইল ও এক্সেপশন
    • এক্সেপশন
    • এক্সেপশন হ্যান্ডেলিং
    • finally
    • এক্সেপশন Raise
    • Assertions
    • ফাইল খোলা
    • ফাইল পড়া
    • ফাইলে লেখা
    • ফাইল নিয়ে সঠিক কাজ
  • ফাংশনাল প্রোগ্রামিং
    • ভূমিকা
    • ল্যামডা
    • ম্যাপ ও ফিল্টার
    • জেনারেটর
    • ডেকোরেটর
    • রিকারসন
    • সেট
    • itertools
  • অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং
    • ক্লাস
    • ইনহেরিটেন্স
    • ম্যাজিক মেথড
    • অপারেটর অভারলোডিং
    • অবজেক্ট লাইফ সাইকেল
    • ডাটা হাইডিং
    • স্ক্লাস মেথড ও ট্যাটিক মেথড
    • প্রোপার্টিস
  • রেগুলার এক্সপ্রেশন
    • পরিচিতি
    • মেটা ক্যারেক্টার
    • ক্যারেক্টার ক্লাস
    • গ্রুপ
    • স্পেশাল সিকুয়েন্স
  • অতিরিক্ত কিছু বিষয়
    • পাইথনিকনেস
    • PEP
    • main
    • # -- coding: utf-8 --
    • #! /usr/bin/env python
    • CPython
    • ডকুমেন্টেশন পড়া
  • প্যাকেজিং
Powered by GitBook
On this page
  1. রেগুলার এক্সপ্রেশন

স্পেশাল সিকুয়েন্স

একটি ব্যাকস্ল্যাশ \ এবং সাথে একটি ক্যারেক্টার ব্যবহার করে রেগুলার এক্সপ্রেশনের জন্য একটি স্পেশাল সিকোয়েন্স তৈরি করা হয়। যেমন, একটি বহুল ব্যবহৃত সিকোয়েন্স হচ্ছে \1 বা \2 বা এরকম। এর মাধ্যমে ওই নাম্বার গ্রুপের (আগের চ্যাপ্টারে গ্রুপ নিয়ে আলোচনা আছে) এক্সপ্রেশনকে ম্যাচ করে দেখা হয়।

উদাহরণ,

import re

pattern = r"(.+) \1"

match = re.match(pattern, "word word")
if match:
    print ("Match 1")

match = re.match(pattern, "?! ?!")
if match:
    print ("Match 2")    

match = re.match(pattern, "abc cde")
if match:
    print ("Match 3")

প্রথম ম্যাচ স্টেটমেন্টটি খেয়াল করি - এখানে (.+) দিয়ে প্রথম গ্রুপে একটি খুশি মত যেকোনো স্ট্রিং চেক করা হচ্ছে আর এর পরেই \1 দিয়ে সেই গ্রুপের (group(1)) জন্য ম্যাচ হওয়া এক্সপ্রেশনকে (word) ম্যাচ করে দেখা হচ্ছে। অর্থাৎ প্রথম অংশে যা থাকবে পরের অংশেও কেবল তাই থাকলেই ম্যাচ সত্য হবে।

আউটপুট,

Match 1
Match 2

তৃতীয় ম্যাচ স্টেটমেন্টের ক্ষেত্রে abc এবং cde এক নয়। তাই এটি মিথ্যা হয়েছে।

\d \s এবং \w

\d দিয়ে ডিজিট, \s দিয়ে হোয়াইট স্পেস এবং \w দিয়ে ওয়ার্ড ক্যারেক্টার ম্যাচ করা হয়ে থাকে। ASCII মুডে এগুলো যথাক্রমে এভাবেও লেখা যায় বা একই এক্সপ্রেশন প্রকাশ করে - [0-9], [ \t\n\r\f\v], and [a-zA-Z0-9_]

মজার বিষয় হচ্ছে এই স্পেশাল সিকোয়েন্স গুলোর বড় হাতের ভার্সন ঠিক উল্টো জিনিষ প্রকাশ করে। অর্থাৎ - \D দিয়ে সব কিছু কিন্তু ডিজিট নয় এমন ম্যাচ করে।

উদাহরণ,

import re

pattern = r"(\D+\d)"

match = re.match(pattern, "Hi 999!")

if match:
    print("Match 1")

match = re.match(pattern, "1, 23, 456!")
if match:
    print("Match 2")

match = re.match(pattern, " ! $?")
if match:
    print("Match 3")

আউটপুট,

Match 1

অর্থাৎ, (\D+\d) দিয়ে এমন একটি স্ট্রিং কে ম্যাচ করার কথা বলা হচ্ছে যার শুরুতে কিছু ক্যারেক্টার থাকবে যেগুলো আর যাই হোক ডিজিট নয়, এবং এরপরে কিছু ডিজিট থাকবে।

আরও কিছু স্পেশাল সিকোয়েন্স

\A এবং \Z দিয়ে কোন স্ট্রিং এর শুরু এবং শেষ ম্যাচ করা হয়। \b দিয়ে ওয়ার্ডের মধ্যেকার বাউন্ডারি বা সীমা গুলোকে চিহ্নিত করা হয়। নিচের উদাহরণটি দেখলে এর ব্যবহার আরও পরিষ্কার বোঝা যাবে।

import re

pattern = r"\b(cat)\b"

match = re.search(pattern, "The cat sat!")
if match:
    print ("Match 1")

match = re.search(pattern, "We s>cat<tered?")
if match:
    print ("Match 2")

match = re.search(pattern, "We scattered.")
if match:
    print ("Match 3")

match = re.search(pattern, "We/cat.tered.")
if match:
    print ("Match 4")    

match = re.search(pattern, "We{cat!tered.")
if match:
    print ("Match 5")

আউটপুট,

Match 1
Match 2
Match 4
Match 5

এখানে \b(cat)\b এর মাধ্যমে cat শব্দটিকে ম্যাচ করা হচ্ছে যাতে এর দুপাশে যেকোনো রকম ওয়ার্ড বাউন্ডারি থাকে। তাহলেই ম্যাচ সত্য হবে।

Previousগ্রুপNextঅতিরিক্ত কিছু বিষয়

Last updated 6 years ago