কম্পিউটার টিউটোরিয়াল

জাভা রেগুলার এক্সপ্রেশন: ক্যারেক্টার ক্লাসের সব ভ্যারিয়েন্ট ব্যাখ্যা


ক্যারেক্টার ক্লাসের পাঁচটি ভ্যারিয়েন্ট

জাভা রেগেক্সে ক্যারেক্টার ক্লাস `[ ]` এর পাঁচটি মূল ভ্যারিয়েন্ট রয়েছে:

১. সিম্পল / বেসিক

[abc] — 'a', 'b', বা 'c' যেকোনো একটি।
[a-z] — রেঞ্জ: a থেকে z।

২. নিগেশন (Negation) — [^...]

ক্যারেক্টার ক্লাসের শুরুতে `^` দিয়ে নির্দিষ্ট সেট বাড়তি সব ক্যারেক্টার ম্যাচ করা হয়।

  • [^abc] — 'a', 'b', 'c' ছাড়া যেকোনো ক্যারেক্টার
  • [^a-z] — ছোট হাতের অক্ষর ছাড়া যেকোনো ক্যারেক্টার

৩. রেঞ্জ (Range) — [a-z]

হাইফন `-` দিয়ে ক্রমাগত ক্যারেক্টার রেঞ্জ স্পেসিফাই করা হয়।

  • [a-z] — ছোট হাতের অক্ষর
  • [A-Z] — বড় হাতের অক্ষর
  • [0-9] — ডিজিট
  • [^A-Z] — বড় হাতের অক্ষর ছাড়া (নিগেশন + রেঞ্জ কম্বাইন)

৪. ইউনিয়ন (Union) — [range1[range2]]

নেস্টেড ব্র্যাকেটস দিয়ে একাধিক রেঞ্জের যুনিয়ন (OR) করা হয়।

  • [a-z[0-9]] — ছোট হাতের অক্ষর অথবা ডিজিট
  • [A-Z[a-f]] — বড় হাতের অক্ষর অথবা a-f

৫. ইন্টারসেকশন (Intersection) — [range1&&range2]

ডাবল অ্যাম্পারস্যান্ড `&&` দিয়ে দুটি রেঞ্জের কমন (AND) পার্ট নেওয়া হয়।

  • [a-z&&[r-u]] — r থেকে u পর্যন্ত ছোট হাতের অক্ষর (a-z এবং r-u-এর ইন্টারসেকশন)
  • [0-9&&[4-7]] — 4, 5, 6, 7

৬. সাবট্র্যাকশন (Subtraction) — নিগেশন + ইন্টারসেকশন

এক রেঞ্জ থেকে অন্য রেঞ্জ বিয়োগ করার কোনো ডাইরেক্ট সিনট্যাক্স নেই। নিগেশন এবং ইন্টারসেকশন কম্বাইন করে করা যায়:

  • [a-l&&[^e-h]] — a থেকে l পর্যন্ত, কিন্তু e-h বাদ। ফলাফল: a, b, c, d, i, j, k, l

সারসংক্ষেপ টেবিল

ভ্যারিয়েন্টসিনট্যাক্সউদাহরণঅর্থ
বেসিক[abc][abc]a, b, বা c
নিগেশন[^...][^abc]a, b, c ছাড়া সব
রেঞ্জ[a-z][a-z]a থেকে z
ইউনিয়ন[r1[r2]][a-z[0-9]]a-z অথবা 0-9
ইন্টারসেকশন[r1&&r2][a-z&&[m-p]]m, n, o, p
সাবট্র্যাকশন[r1&&[^r2]][a-f&&[^c-e]]a, b, f

সারসংক্ষেপ

ক্যারেক্টার ক্লাসের এই পাঁচটি ভ্যারিয়েন্ট (বেসিক, নিগেশন, রেঞ্জ, ইউনিয়ন, ইন্টারসেকশন/সাবট্র্যাকশন) কম্বাইন করে যেকোনো জটিল ক্যারেক্টার সেট ডিফাইন করা যায়। এগুলো মাস্টার করলে রেগেক্স লেখা অনেক সহজ ও এক্সপ্রেসিভ হয়।

  1. জাভা রেগুলার এক্সপ্রেশনে (?: re) সাব-এক্সপ্রেশন ব্যাখ্যা

  2. জাভা রেগুলার এক্সপ্রেশনে \B মেটাক্যারেক্টার ব্যাখ্যা

  3. জাভা রেগুলার এক্সপ্রেশনে \s মেটাক্যারেক্টার ব্যাখ্যা

  4. জাভা রেগুলার এক্সপ্রেশনে \w মেটাক্যারেক্টার ব্যাখ্যা