\p{IsAlphabetic} ক্যারেক্টার ক্লাস
Unicode প্রপার্টি `\p{IsAlphabetic}` সমস্ত বর্ণমালার অক্ষর (alphabetic characters) ম্যাচ করে — শুধু ইংরেজি নয়, সব ভাষার অক্ষর (ল্যাটিন, গ્રিক, সিরিলিক, দেবনাগরী, ইত্যাদি)।
উদাহরণ ১: অ্যালফাবেটিক ক্যারেক্টার গণনা
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PosixIsAlphabeticExample1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("একটি স্ট্রিং লিখুন: ");
String input = sc.nextLine();
String regex = "\\p{IsAlphabetic}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("অ্যালফাবেটিক ক্যারেক্টার সংখ্যা: " + count);
}
}
আউটপুট উদাহরণ ১
একটি স্ট্রিং লিখুন: sample text
অ্যালফাবেটিক ক্যারেক্টার সংখ্যা: 10
উদাহরণ ২: অ্যালফাবেটিক ক্যারেক্টার ধারণকারী স্ট্রিং ফিল্টার
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PosixIsAlphabeticExample2 {
public static void main(String[] args) {
String regex = "^.*\\p{IsAlphabetic}.*$";
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());
}
}
}
}
আউটপুট উদাহরণ ২
৫টি ইনপুট স্ট্রিং লিখুন:
hello
sample
243test
##$$@
222356
অ্যালফাবেটিক ক্যারেক্টার ধারণকারী স্ট্রিংগুলো:
hello
sample
243test
\p{IsAlphabetic} vs \p{Alpha} vs [a-zA-Z]
| প্যাটার্ন | স্কোপ | ম্যাচ করবে |
|---|---|---|
[a-zA-Z] | শুধু ইংরেজি | A-Z, a-z |
\p{Alpha} | POSIX/Unicode | সব ভাষার অক্ষর (legacy) |
\p{IsAlphabetic} | Unicode প্রপার্টি | সব ভাষার অক্ষর (রিকমেন্ডেড) |
সারসংক্ষেপ
`\p{IsAlphabetic}` সব ভাষার অক্ষর ম্যাচ করার জন্য সঠিক এবং আধুনিক উপায়। এটি `[a-zA-Z]`-এর চেয়ে বেশি ইনক্লूसিভ এবং ইন্টারন্যাশনালাইজেশন (i18n) রেডি। 멀্টিলিংগুয়াল অ্যাপ্লিকেশনে এটি ব্যবহার করুন।