\p{Blank} ক্যারেক্টার ক্লাস
POSIX ক্যারেক্টার ক্লাস `\p{Blank}` সব ট্যাব (`\t`) এবং স্পেস (` `) ক্যারেক্টার ম্যাচ করে। এটি `[\t ]`-এর সমতুল্য কিন্তু আরও পঠনীয়।
উদাহরণ ১: ব্ল্যাঙ্ক ক্যারেক্টার গণনা
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PosixBlankExample1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("একটি স্ট্রিং লিখুন: ");
String input = sc.nextLine();
String regex = "[\\p{Blank}]"; // ট্যাব বা স্পেস
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("ব্ল্যাঙ্ক ক্যারেক্টার সংখ্যা: " + count);
}
}
আউটপুট উদাহরণ ১
একটি স্ট্রিং লিখুন: space tab test
ব্ল্যাঙ্ক ক্যারেক্টার সংখ্যা: 2
উদাহরণ ২: ব্ল্যাঙ্ক ক্যারেক্টার সহ স্ট্রিং ফিল্টার
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PosixBlankExample2 {
public static void main(String[] args) {
// ব্ল্যাঙ্ক ক্যারেক্টার থাকা স্ট্রিং ম্যাচ
String regex = "^.*\\p{Blank}.*$";
Scanner sc = new Scanner(System.in);
System.out.println("৫টি ইনপুট স্ট্রিং লিখুন: ");
String[] input = new String[5];
for (int i = 0; i < 5; i++) {
input[i] = sc.nextLine();
}
Pattern p = Pattern.compile(regex);
System.out.println("ব্ল্যাঙ্ক ক্যারেক্টার ধারণকারী স্ট্রিংগুলো:");
for (int i = 0; i < 5; i++) {
Matcher m = p.matcher(input[i]);
if (m.matches()) {
System.out.println(m.group());
}
}
}
}
আউটপুট উদাহরণ ২
৫টি ইনপুট স্ট্রিং লিখুন:
sample data
hello
welcome to tutorialspoint
12345
ab bc cd da
ব্ল্যাঙ্ক ক্যারেক্টার ধারণকারী স্ট্রিংগুলো:
sample data
welcome to tutorialspoint
ab bc cd da
অন্যান্য POSIX ক্যারেক্টার ক্লাস
| POSIX ক্লাস | জাভা সিনট্যাক্স | ম্যাচ করবে |
|---|---|---|
| alnum | \p{Alnum} | অক্ষর ও সংখ্যা |
| alpha | \p{Alpha} | অক্ষর (A-Z, a-z) |
| blank | \p{Blank} | স্পেস ও ট্যাব |
| cntrl | \p{Cntrl} | কন্ট্রোল ক্যারেক্টার |
| digit | \p{Digit} | সংখ্যা (0-9) |
| graph | \p{Graph} | প্রিন্টেবল (স্পেস বাদ) |
| lower | \p{Lower} | ছোট হাতের অক্ষর |
| \p{Print} | প্রিন্টেবল (স্পেস সহ) | |
| punct | \p{Punct} | পাঙ্কচুয়েশন |
| space | \p{Space} | হোয়াইটস্পেস (ব্ল্যাঙ্ক + \n\r\f\v) |
| upper | \p{Upper} | বড় হাতের অক্ষর |
| xdigit | \p{XDigit} | হেক্সাডেসিমেল ডিজিট |
সারসংক্ষেপ
`\p{Blank}` স্পেস এবং ট্যাব ম্যাচ করার জন্য স্ট্যান্ডার্ড POSIX ক্লাস। এটি `[\t ]`-এর চেয়ে বেশি পঠনীয় এবং লোকেল-স্বাধীন। জাভা রেগেক্সে সব POSIX ক্লাস `\p{Name}` সিনট্যাক্সে উপলব্ধ।