Comment on page
ক্যারেক্টার ক্লাস
ক্যারেক্টার ক্লাস হচ্ছে কিছু ক্যারেক্টারের সমষ্টি বা সেট। এর মাধ্যমে এই সেটের মধ্যেকার যেকোনো একটি ক্যারেক্টারের সাথে নির্দিষ্ট কোন স্ট্রিং -কে ম্যাচ করে দেখা যায়। আবার একটি নির্দিষ্ট রেঞ্জ পর্যন্ত ক্যারেক্টার এর সাথেও ম্যাচ করা যায়।
[]
বন্ধনী ব্যবহার করে এবং এর মধ্যে নির্দিষ্ট কিছু ক্যারেক্টার যুক্ত করে একটি ক্যারেক্টার ক্লাস তৈরি করা হয় যা পরবর্তীতে সার্চ প্যাটার্ন হিসেবে ব্যবহার করা হয়।উদাহরণ,
একটি ক্যারেক্টার ম্যাচ
import re
# A character set containing all vowels
pattern = r"[aeiou]"
# Lets check whether a word got a vowel in it or not
if re.search(pattern, "grey"):
print("The word 'grey' got at least one vowel!")
else:
print("No vowel found!")
if re.search(pattern, "qwertyuiop"):
print("The word 'qwertyuiop' got at least one vowel!")
else:
print("No vowel found!")
if re.search(pattern, "rhythm myths"):
print("The word 'rhythm myths' got at least one vowel!")
else:
print("No vowel found!")
আউটপুট,
The word 'grey' got at least one vowel!
The word 'qwertyuiop' got at least one vowel!
No vowel found!
ক্যারেক্টার রেঞ্জ ম্যাচ
ক্যারেক্টার সেট তৈরি করার সময়
-
চিহ্ন দিয়ে একটি রেঞ্জ ডিফাইন করা হয়। যেমন, [a-z]
ক্লাস দিয়ে ছোট হাতের যেকোনো ইংলিশ বর্ণ ম্যাচ করা হয়। [A-Z]
দিয়ে যেকোনো বড় হাতের ইংলিশ বর্ণ। [0-9]
দিয়ে যেকোনো নিউমেরিক ডিজিট ম্যাচ করে দেখা হয়, ইত্যাদি।উদাহরণ,
import re
pattern = r"[A-Z][A-Z][0-9]"
if re.search(pattern, "NS1 is prefix of first name server address."):
# Found NS1 as match
print("OK")
if re.search(pattern, "You should put a second one with NS2 as prefix."):
# Found NS2 as match
print("OK")
if re.search(pattern, "I don\'t have any nameserver."):
print("NS3")
else:
print("Not OK!")
if re.search(pattern, "PY3K"):
# Found PY3 as match
print("OK")
আউটপুট,
OK
OK
Not OK!
OK
অর্থাৎ উপরের
[A-Z][A-Z][0-9]
প্যাটার্নের মাধ্যমে একটি স্ট্রিং এর মধ্যে "দুটি বড় হাতের ইংলিশ বর্ণ এবং তার সাথেই যুক্ত একটি নিউমেরিক ডিজিট" সম্পন্ন একটি প্যাটার্ন ম্যাচ করা হচ্ছে।ক্যারেক্টার ক্লাসে ^ এর ব্যবহার
আমরা আগে জেনেছি যে,
^
হচ্ছে একটি মেটা ক্যারেক্টার। ক্যারেক্টার ক্লাসে ^
এর গুরুত্বপূর্ণ একটি ভূমিকা আছে। এর মাধ্যমে সাধারণ ভাবে তৈরি করা একটি ক্যারেক্টার ক্লাসের ঠিক উল্টো অর্থ ডিফাইন করা হয়। অর্থাৎ এটি একটি ক্যারেক্টার ক্লাসের অর্থকে invert করে ফেলে। অর্থাৎ [A-Z]
দিয়ে যদি যেকোনো বড় হাতের ইংলিশ বর্ণের উপস্থিতি যাচাই করা হয়, তাহলে [^A-Z]
দিয়ে যেকোনো বড় হাতের ইংলিশ বর্ণের অনুপস্থিতি যাচাই বা ম্যাচ করা হয়।উদাহরণ,
import re
# Match string that contains NOT ALL Capital letters
pattern = r"[^A-Z]"
if re.search(pattern, "a sentence with all lower case letters."):
print("Match 1")
if re.search(pattern, "A sentence with mixed English letters."):
print("Match 2")
if re.search(pattern, "HEADING"):
# All Capital letters
# No Match
print("Match 3")
if re.search(pattern, "HEADING WITH ALL CAPITAL LETTERS"):
# All Capital letters
# but "spaces" makes it True to NOT ALL Capital
print("Match 4")
আউটপুট,
Match 1
Match 2
Match 4
ক্যারেক্টার ক্লাস ডিফাইন করার সময়^
মেটা ক্যারেক্টারটির এর ভূমিকা থাকলেও অন্য মেটা ক্যারেক্টার যেমন -.
বা$
এর কোন ভূমিকা নেই।
Last modified 5yr ago