পাইথন রেজেক্স উদাহরণ

Pa Ithana Rejeksa Udaharana



regex এর পূর্ণরূপ হল রেগুলার এক্সপ্রেশন। এটি যেকোনো প্রোগ্রামিং ভাষার একটি গুরুত্বপূর্ণ বৈশিষ্ট্য। এটি একটি স্ট্রিং প্যাটার্ন যা একটি স্ট্রিং মান স্ট্রিংগুলিকে মেলাতে, অনুসন্ধান করতে বা প্রতিস্থাপন করতে ব্যবহৃত হয়। পাইথনের 'রি' মডিউল ব্যবহার করে পাইথন স্ক্রিপ্টে রেজেক্স প্যাটার্ন ব্যবহার করা যেতে পারে। বিভিন্ন স্ট্রিং অপারেশন করার জন্য এই মডিউলটিতে অনেক ধরনের ফাংশন রয়েছে। বিভিন্ন মেটাক্যারেক্টার এবং বিশেষ ক্রমগুলি কাজগুলি অনুসন্ধান বা প্রতিস্থাপনের জন্য রেজেক্স প্যাটার্নগুলি সংজ্ঞায়িত করতে ব্যবহৃত হয়। পাইথন স্ক্রিপ্টে কিছু সাধারণভাবে ব্যবহৃত মেটাক্যারেক্টার, বিশেষ সিকোয়েন্স এবং রেজেক্স পদ্ধতি ব্যবহার করার উদ্দেশ্য এই টিউটোরিয়ালে দেখানো হয়েছে।

রেজেক্সে কিছু সাধারণভাবে ব্যবহৃত মেটাক্যারেক্টার:









চরিত্র উদ্দেশ্য
'+' এটি একটি স্ট্রিং-এ একটি নির্দিষ্ট অক্ষরের এক বা একাধিক ঘটনার সাথে মেলাতে ব্যবহৃত হয়।
'*' এটি একটি স্ট্রিং-এ একটি নির্দিষ্ট অক্ষরের শূন্য বা তার বেশি ঘটনার সাথে মেলাতে ব্যবহৃত হয়।
'?' এটি একটি স্ট্রিং-এ একটি নির্দিষ্ট অক্ষরের শূন্য বা একটি ঘটনার সাথে মেলানোর জন্য ব্যবহৃত হয়।
'^' এটি স্ট্রিং এর শুরুতে নির্দিষ্ট অক্ষর বা স্ট্রিং এর সাথে মেলাতে ব্যবহৃত হয়।
'$' এটি স্ট্রিং এর শেষে নির্দিষ্ট অক্ষর বা স্ট্রিং এর সাথে মেলাতে ব্যবহৃত হয়।
'|' এটি একটি স্ট্রিং এর একাধিক স্ট্রিং এর যে কোন একটির সাথে মেলাতে ব্যবহৃত হয়। এটি OR লজিকের মতো কাজ করে।
'[]' এটি অক্ষরের একটি পরিসীমা মেলে ব্যবহার করা হয়।
'{}' এটি একটি নির্দিষ্ট সংখ্যক অক্ষর মেলাতে ব্যবহৃত হয়।



রেজেক্সে কিছু সাধারণভাবে ব্যবহৃত বিশেষ ক্রম:





সিকোয়েন্স উদ্দেশ্য
'\A' এটি স্ট্রিং এর শুরুতে নির্দিষ্ট অক্ষর মেলানোর জন্য ব্যবহৃত হয়। এটি '^' অক্ষরের মতো কাজ করে।
'\b', '\B' স্ট্রিং এর শুরুতে বা শেষে নির্দিষ্ট অক্ষর বা শব্দ ধারণ করে সেই স্ট্রিংকে মেলানোর জন্য “\b” ব্যবহার করা হয়। '\B' '\b' এর বিপরীতে কাজ করে।
'\d', '\D' “\d” স্ট্রিং-এর দশমিক সংখ্যার সাথে মেলে যা “[0-9]”-এর মতো। '\D' '\d' এর বিপরীতে কাজ করে।
'\s', '\S' '[\n\t\r\v]'-এর অনুরূপ স্ট্রিং-এর হোয়াইটস্পেস মেলানোর জন্য '\s' ব্যবহার করা হয়। '\S' '\s' এর বিপরীতে কাজ করে।
'\w', '\W' স্ট্রিং-এ বর্ণমালা এবং সংখ্যাসূচক অক্ষর মেলানোর জন্য “\w” ব্যবহার করা হয়। '\W' '\w' এর বিপরীতে কাজ করে।
'\সঙ্গে' এটি স্ট্রিং এর শেষে নির্দিষ্ট অক্ষর মেলানোর জন্য ব্যবহৃত হয়। এটি '$' অক্ষরের মতো কাজ করে।

উদাহরণ 1: Match() ফাংশন ব্যবহার করে স্ট্রিং মেলান

ম্যাচ() ফাংশনটি স্ট্রিংয়ের শুরুতে একটি রেজেক্স প্যাটার্নের সাথে মেলাতে ব্যবহৃত হয়। এই ফাংশনের সিনট্যাক্স নিম্নরূপ দেওয়া হয়:



বাক্য গঠন:

পুনরায় ম্যাচ ( প্যাটার্ন, স্ট্রিং, পতাকা = 0 )

এখানে, রেজেক্স প্যাটার্ন সংজ্ঞায়িত করতে প্রথম আর্গুমেন্ট ব্যবহার করা হয়। দ্বিতীয় যুক্তিটি প্রধান স্ট্রিং সংজ্ঞায়িত করতে ব্যবহৃত হয়। তৃতীয় যুক্তিটি ঐচ্ছিক এবং বিভিন্ন ধরনের পতাকা সংজ্ঞায়িত করতে ব্যবহৃত হয়।

নিম্নলিখিত স্ক্রিপ্ট সহ একটি পাইথন ফাইল তৈরি করুন যা ম্যাচ() ফাংশন ব্যবহার করে একটি সংজ্ঞায়িত স্ট্রিং সহ একটি রেজেক্স প্যাটার্নের সাথে মেলে। প্রথমত, একটি সংজ্ঞায়িত রেজেক্স প্যাটার্ন মেলে ব্যবহার করা হয়। এর পরে, ব্যবহারকারীর কাছ থেকে একটি অনুসন্ধান শব্দ নেওয়া হয় এবং স্ট্রিং মানের সাথে মেলে একটি রেজেক্স প্যাটার্ন হিসাবে ব্যবহৃত হয়। যদি কোনো মিল পাওয়া যায়, অনুসন্ধান শব্দ মুদ্রিত হয়. অন্যথায়, 'কোন মিল মান পাওয়া যায়নি' স্ট্রিং মুদ্রিত হয়.

# প্রয়োজনীয় মডিউল আমদানি করুন
আবার আমদানি করুন

# ম্যাচিং ফলাফল প্রিন্ট করার জন্য ফাংশনটি সংজ্ঞায়িত করুন
def matchString ( ) :
# ম্যাচ() ফাংশনের রিটার্ন মান পরীক্ষা করুন
যদি সাথে ! = কোনটিই না:
ছাপা ( ''' + mat.group ( ) + '' পাওয়া যায় + strValue + ''' )
অন্য:
ছাপা ( 'কোন মিল মান পাওয়া যায়নি।' )

# স্ট্রিং মান সংজ্ঞায়িত করুন
strValue = 'যে প্রথম আসবে, সে প্রথম যাবে.'
# প্যাটার্নের উপর ভিত্তি করে স্ট্রিং মিলান
mat = re.match ( '^প্রথম' , strValue )
# ম্যাচের ফলাফল প্রিন্ট করতে ফাংশনটি কল করুন
ম্যাচস্ট্রিং ( )

# অনুসন্ধান স্ট্রিং নিন
inValue = ইনপুট ( 'অনুসন্ধান মান লিখুন: ' )
mat = re.match ( inValue + , strValue )
# ম্যাচের ফলাফল প্রিন্ট করতে ফাংশনটি কল করুন
ম্যাচস্ট্রিং ( )

নিম্নলিখিত আউটপুট 'প্রথম' ইনপুট মানের জন্য প্রদর্শিত হবে:

উদাহরণ 2: Findall() ফাংশন ব্যবহার করে স্ট্রিং খুঁজুন

Findall() ফাংশনটি মূল স্ট্রিং-এ টিপল হিসাবে পাওয়া সমস্ত মিলে যাওয়া শব্দ ফেরত দিতে ব্যবহৃত হয়।

বাক্য গঠন:

re.findall ( প্যাটার্ন, স্ট্রিং, পতাকা = 0 )

এখানে, রেজেক্স প্যাটার্ন সংজ্ঞায়িত করতে প্রথম আর্গুমেন্ট ব্যবহার করা হয়। দ্বিতীয় যুক্তিটি প্রধান স্ট্রিং সংজ্ঞায়িত করতে ব্যবহৃত হয়। তৃতীয় যুক্তিটি ঐচ্ছিক এবং বিভিন্ন ধরনের পতাকা সংজ্ঞায়িত করতে ব্যবহৃত হয়।

নিম্নলিখিত স্ক্রিপ্ট সহ একটি পাইথন ফাইল তৈরি করুন যা ব্যবহারকারীর কাছ থেকে একটি প্রধান স্ট্রিং মান এবং একটি অনুসন্ধান স্ট্রিং মান নেয়। এরপরে, মূল স্ট্রিং-এ সার্চ শব্দটি খুঁজতে regex প্যাটার্নে সার্চ শব্দটি ব্যবহার করুন। মোট ম্যাচের সংখ্যা আউটপুটে মুদ্রিত হয়।

# প্রয়োজনীয় মডিউল আমদানি করুন
আবার আমদানি করুন

# একটি স্ট্রিং মান নিন
inValue = ইনপুট ( 'একটি স্ট্রিং লিখুন:' )

# একটি অনুসন্ধান শব্দ নিন
srcValue = ইনপুট ( 'একটি অনুসন্ধান শব্দ লিখুন:' )

# স্ট্রিং এ শব্দটি অনুসন্ধান করুন
srcResult = re.findall ( srcValue + '\ভিতরে*' , মূল্যে )
# সার্চ রেজাল্ট প্রিন্ট করুন
ছাপা ( 'শব্দটি '' + srcValue + '' স্ট্রিং এ পাওয়া যায়'
+ str ( কেবল ( src ফলাফল ) ) + 'বার।' )

আউটপুট অনুসারে, 'আমরা বাঁচার জন্য খাই এবং খাওয়ার জন্য বাঁচি না' প্রধান স্ট্রিংটিতে 'খাওয়া' অনুসন্ধান শব্দটি দুবার পাওয়া যায়।

উদাহরণ 3: Search() ফাংশন ব্যবহার করে স্ট্রিং অনুসন্ধান করুন

একটি স্ট্রিং মান একটি নির্দিষ্ট প্যাটার্ন অনুসন্ধান করার জন্য অনুসন্ধান() আরেকটি ফাংশন. এতে match() এবং findall() ফাংশনের মতো একই আর্গুমেন্ট রয়েছে। নিম্নলিখিত স্ক্রিপ্ট সহ একটি পাইথন ফাইল তৈরি করুন যা ব্যবহারকারীর কাছ থেকে নেওয়া হবে এমন একটি স্ট্রিং মানতে 'পাইথন' শব্দটি অনুসন্ধান করে। ইনপুট মানতে অনুসন্ধান শব্দটি বিদ্যমান থাকলে, একটি সফল বার্তা মুদ্রিত হয়। অন্যথায়, একটি ব্যর্থতা বার্তা মুদ্রিত হয়.

# পুনরায় মডিউল আমদানি করুন
আবার আমদানি করুন

# একটি স্ট্রিং মান নিন
inValue = ইনপুট ( 'একটি স্ট্রিং লিখুন:' )
# স্ট্রিং ভ্যালুতে নির্দিষ্ট শব্দটি অনুসন্ধান করুন
srcResult = re.search ( r 'পাইথন\w*' , মূল্যে )

# অনুসন্ধান শব্দটি পাওয়া যায় কি না তা পরীক্ষা করুন
যদি src ফলাফল:
ছাপা ( ''' + srcResult.group ( ) + '' পাওয়া যায় + invalue + ''' )
অন্য:
ছাপা ( 'অনুসন্ধান স্ট্রিং খুঁজে পাওয়া যায়নি।' )

আউটপুট:

ইনপুট স্ট্রিং যদি 'আমি পাইথন প্রোগ্রামিং পছন্দ করি' তাহলে নিম্নলিখিত আউটপুটটি প্রদর্শিত হবে:

ইনপুট স্ট্রিং যদি 'আমি পিএইচপি প্রোগ্রামিং পছন্দ করি' তাহলে নিম্নলিখিত আউটপুটটি প্রদর্শিত হবে:

উদাহরণ 4: Sub() ফাংশন ব্যবহার করে স্ট্রিং প্রতিস্থাপন করুন

সাব() ফাংশনটি প্যাটার্নের উপর ভিত্তি করে একটি নির্দিষ্ট স্ট্রিং অনুসন্ধান করতে এবং এটিকে অন্য শব্দ দিয়ে প্রতিস্থাপন করতে ব্যবহৃত হয়। এই ফাংশনের সিনট্যাক্স নিম্নরূপ দেওয়া হয়:

বাক্য গঠন:

re.sub ( প্যাটার্ন, প্রতিস্থাপন_স্ট্রিং, প্রধান_স্ট্রিং )

এই ফাংশনের প্রথম আর্গুমেন্টে এমন প্যাটার্ন রয়েছে যা মূল স্ট্রিং-এ নির্দিষ্ট স্ট্রিং অনুসন্ধান করতে ব্যবহৃত হয়।

এই ফাংশনের দ্বিতীয় আর্গুমেন্টে 'প্রতিস্থাপন' স্ট্রিং মান রয়েছে।

এই ফাংশনের তৃতীয় আর্গুমেন্টে প্রধান স্ট্রিং রয়েছে।

এই ফাংশনটি প্রতিস্থাপিত স্ট্রিং ফেরত দেয় যদি প্রথম আর্গুমেন্টের উপর ভিত্তি করে মূল স্ট্রিং-এ কোনো মিলিত শব্দ বিদ্যমান থাকে।

নিম্নলিখিত স্ক্রিপ্ট সহ একটি পাইথন ফাইল তৈরি করুন যা স্ট্রিংয়ের শেষে দুটি সংখ্যা অনুসন্ধান করে। যদি স্ট্রিংটির শেষে দুটি সংখ্যা থাকে, তাহলে সংখ্যাগুলি '$50' স্ট্রিং দ্বারা প্রতিস্থাপিত হয়৷

# পুনরায় মডিউল আমদানি করুন
আবার আমদানি করুন

# প্রধান স্ট্রিং সংজ্ঞায়িত করুন
strValue = 'বইটির দাম 70 টাকা'

# অনুসন্ধান প্যাটার্ন সংজ্ঞায়িত করুন
প্যাটার্ন = '[0-9]{2}'

# প্রতিস্থাপন মান সংজ্ঞায়িত করুন
প্রতিস্থাপন মান = '$50'

# প্যাটার্নের উপর ভিত্তি করে স্ট্রিংটি অনুসন্ধান করুন এবং প্রতিস্থাপন করুন
modified_strValue = re.sub ( প্যাটার্ন, রিপ্লেস ভ্যালু, str ভ্যালু )
# মূল এবং পরিবর্তিত স্ট্রিং মান প্রিন্ট করুন
ছাপা ( 'মূল স্ট্রিং:' + strValue )
ছাপা ( 'পরিবর্তিত স্ট্রিং:' + modified_strValue )

আউটপুট:

মূল স্ট্রিংয়ের শেষে 70টি ছিল। সুতরাং, 70 প্রতিস্থাপিত স্ট্রিং-এ $50 দ্বারা প্রতিস্থাপিত হয়।

উদাহরণ 5: Subn() ফাংশন ব্যবহার করে স্ট্রিং প্রতিস্থাপন করুন

subn() ফাংশনটি sub() ফাংশনের মতো কাজ করে, ব্যতীত এটি একটি টিপল হিসাবে আউটপুট প্রদান করে যেখানে প্রথম সূচকে প্রতিস্থাপিত মান থাকে এবং দ্বিতীয় সূচকে মোট মিলের সংখ্যা থাকে।

নিম্নলিখিত স্ক্রিপ্ট সহ একটি পাইথন ফাইল তৈরি করুন যা subn() ফাংশন ব্যবহার করে 'LinuxHint.com' স্ট্রিং-এ A থেকে L বর্ণমালা অনুসন্ধান করে:

# পুনরায় মডিউল আমদানি করুন
আবার আমদানি করুন

# প্রধান স্ট্রিং সংজ্ঞায়িত করুন
strValue = 'LinuxHint.com'

# অনুসন্ধান প্যাটার্ন সংজ্ঞায়িত করুন
প্যাটার্ন = '[এর প্রতি]'

# প্রতিস্থাপন মান সংজ্ঞায়িত করুন
প্রতিস্থাপন মান = '*'

# প্যাটার্নের উপর ভিত্তি করে স্ট্রিংটি অনুসন্ধান করুন এবং প্রতিস্থাপন করুন
modified_strValue = re.subn ( প্যাটার্ন, রিপ্লেস ভ্যালু, str ভ্যালু )
# মূল স্ট্রিং এবং subn() এর আউটপুট প্রিন্ট করুন
ছাপা ( 'মূল স্ট্রিং: \n ' + strValue )
ছাপা ( 'subn() ফাংশনের আউটপুট: ' )
ছাপা ( modified_strValue )

আউটপুট:

নিম্নলিখিত আউটপুট অনুসারে, 'L' এবং 'H' অক্ষরগুলি '*' অক্ষর দ্বারা প্রতিস্থাপিত হয়।

উদাহরণ 6: Split() ফাংশন ব্যবহার করে স্ট্রিং বিভক্ত করুন

নিম্নলিখিত স্ক্রিপ্ট সহ একটি পাইথন ফাইল তৈরি করুন যা রেজেক্স প্যাটার্নের উপর ভিত্তি করে প্রধান স্ট্রিংকে একাধিক অংশে ভাগ করতে split() ফাংশন ব্যবহার করে:

# পুনরায় মডিউল আমদানি করুন
আবার আমদানি করুন

# স্ট্রিং মান সংজ্ঞায়িত করুন
strVal= 'Rupa Akter;Nira Chowdhury;Mazharul Islam'
# প্যাটার্নটি সংজ্ঞায়িত করুন যা ডেটা বিভক্ত করতে ব্যবহৃত হবে
প্যাটার্ন = '[^A-Za-z]'
# একটি তালিকায় বিভক্ত মান সংরক্ষণ করুন
split_result = re.split ( প্যাটার্ন, strVal )
ছাপা ( 'বিভক্ত() ফাংশনের আউটপুট:' )
ছাপা ( বিভক্ত_ফলাফল )

আউটপুট:

আউটপুট অনুসারে, স্ক্রিপ্টে ব্যবহৃত “[^A-Za-z]” প্যাটার্নের উপর ভিত্তি করে প্রধান স্ট্রিংটিকে তিনটি ভাগে ভাগ করা হয়েছে।

উপসংহার

স্ট্রিংগুলি অনুসন্ধান, প্রতিস্থাপন এবং বিভক্ত করার জন্য সর্বাধিক ব্যবহৃত মেটাক্যারেক্টার, রেঞ্জ এবং পাইথন বিল্ট-ইন ফাংশনগুলির উদ্দেশ্য সাধারণ পাইথন স্ক্রিপ্ট ব্যবহার করে এই টিউটোরিয়ালে দেখানো হয়েছে।