ক্যারেক্টার ক্লাস বেসিকস
জাভা রেগেক্সে ক্যারেক্টার ক্লাস `[ ]` একটি নির্দিষ্ট সেট থেকে একক ক্যারেক্টার ম্যাচ করে।
সিনট্যাক্স ও উদাহরণ
[abc]— 'a', 'b', বা 'c' যেকোনো একটি[a-z]— ছোট হাতের অক্ষর a থেকে z (রেঞ্জ)[^a-z]— ছোট হাতের অক্ষর ছাড়া যেকোনো ক্যারেক্টার (নিগেশন)
উদাহরণ ১: a-z ক্যারেক্টার গণনা
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CharClassExample1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("ইনপুট টেক্সট লিখুন: ");
String input = sc.nextLine();
String regex = "[a-z]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("a থেকে z পর্যন্ত ক্যারেক্টার সংখ্যা: " + count);
}
}
আউটপুট উদাহরণ ১
ইনপুট টেক্সট লিখুন: sample data 1234$
a থেকে z পর্যন্ত ক্যারেক্টার সংখ্যা: 10
উদাহরণ ২: নন-অ্যালফাবেটিক ক্যারেক্টার গণনা (নিগেশন)
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CharClassExample2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("ইনপুট টেক্সট লিখুন: ");
String input = sc.nextLine();
String regex = "[^a-z]"; // ছোট হাতের অক্ষর ছাড়া
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("নন-অ্যালফাবেটিক ক্যারেক্টার সংখ্যা: " + count);
}
}
আউটপুট উদাহরণ ২
ইনপুট টেক্সট লিখুন: sample data 1234$
নন-অ্যালফাবেটিক ক্যারেক্টার সংখ্যা: 7
ব্যাখ্যা: স্পেস (১), 1234 (৪), $ (১) + সম্ভবত বড় হাতের অক্ষর = ৭।
কमन ক্যারেক্টার ক্লাস প্যাটার্ন
| রেজেক্স | নাম | ম্যাচ করবে |
|---|---|---|
[aeiou] | স্বরবর্ণ (vowels) | a, e, i, o, u |
[bcdfghjklmnpqrstvwxyz] | ব্যঞ্জনবর্ণ (consonants) | সব ছোট হাত ব্যঞ্জন |
[A-Za-z] | সকল অক্ষর | A-Z, a-z |
[0-9] | ডিজিট | 0-9 |
[A-Za-z0-9] | আলফানিউমেরিক | অক্ষর + সংখ্যা |
[^A-Za-z0-9] | নন-আলফানিউমেরিক | স্পেশাল ক্যারেক্টার, স্পেস |
[\s] | হোয়াইটস্পেস | স্পেস, ট্যাব, নিউলাইন |
[\S] | নন-হোয়াইটস্পেস | বিজিবল ক্যারেক্টার |
সারসংক্ষেপ
ক্যারেক্টার ক্লাস `[ ]` রেগেক্সের ফান্ডামেন্টাল বিল্ডিং ব্লক। রেঞ্জ (`a-z`), নিগেশন (`^`), ইউনিয়ন (`[a-z[0-9]]`), ইন্টারসেকশন (`[a-z&&[m-p]]`) কম্বাইন করে জটিল ক্যারেক্টার সেট ডিফাইন করা যায়। বেসিক `[abc]` থেকে শুরু করে অ্যাডভান্সড `[a-z&&[^aeiou]]` (ব্যঞ্জনবর্ণ) পর্যন্ত — সবই সম্ভব।