ক্যারেক্টার ক্লাস রেঞ্জ কী?
জাভা রেগেক্সে ক্যারেক্টার ক্লাস `[ ]` একটি নির্দিষ্ট সেট থেকে একক ক্যারেক্টার ম্যাচ করে। রেঞ্জ (Range) ভ্যারিয়েন্ট আপনাকে একটি ক্রমাগত ক্যারেক্টার সিকোয়েন্স স্পেসিফাই করতে দেয় হাইফন (`-`) ব্যবহার করে।
সিনট্যাক্স ও উদাহরণ
[a-z]— ছোট হাতের ইংরেজি অক্ষর a থেকে z[A-Z]— বড় হাতের ইংরেজি অক্ষর A থেকে Z[0-9]— সংখ্যা 0 থেকে 9[^A-Z]— বড় হাতের অক্ষর বাড়তি যেকোনো ক্যারেক্টার (নিগেশন সহ রেঞ্জ)
উদাহরণ ১: ছোট হাতের অক্ষর গণনা
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexRangeExample1 {
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 5423 #@ %*&
রেঞ্জ (a-z) থেকে ক্যারেক্টার সংখ্যা: 10
উদাহরণ ২: বড় হাতের অক্ষর নেই কিনা যাচাই (নিগেটিভ রেঞ্জ)
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexRangeExample2 {
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);
if (matcher.find()) {
System.out.println("ম্যাচ হয়েছে (বড় হাতের অক্ষর ছাড়া ক্যারেক্টার পাওয়া গেছে)");
} else {
System.out.println("ম্যাচ হয়নি (শুধু বড় হাতের অক্ষর আছে)");
}
}
}
আউটপুট উদাহরণ ২
ইনপুট টেক্সট লিখুন: sample data
ম্যাচ হয়েছে (বড় হাতের অক্ষর ছাড়া ক্যারেক্টার পাওয়া গেছে)
ইনপুট টেক্সট লিখুন: SAMPLEDATA
ম্যাচ হয়নি (শুধু বড় হাতের অক্ষর আছে)
রেঞ্জ সংক্রান্ত টিপস
| রেজেক্স | ব্যাখ্যা |
|---|---|
[a-zA-Z] | সব ইংরেজি অক্ষর (বড়+ছোট) |
[a-zA-Z0-9] | আলফানিউমেরিক (অক্ষর+সংখ্যা) |
[^a-zA-Z0-9] | নন-আলফানিউমেরিক (স্পেশাল ক্যারেক্টার) |
[a-m] | a থেকে m পর্যন্ত ছোট হাত |
[5-9] | 5 থেকে 9 পর্যন্ত সংখ্যা |
সারসংক্ষেপ
রেঞ্জ ভ্যারিয়েন্ট রেগেক্সকে সংক্ষিপ্ত ও পঠনীয় করে। `[a-z]` লেখা `[abcdefghijklmnopqrstuvwxyz]` লেখার চেয়ে অনেক সহজ এবং কম ত্রুটিসংভাব্য। নেগেশন (`^`) রেঞ্জের সাথে কম্বাইন করে "এই রেঞ্জ ছাড়া সব কিছু" এর মত জটিল প্যাটার্নও সহজে লেখা যায়।