\p{IsLatin} ক্যারেক্টার ক্লাস
Unicode স্ক্রিপ্ট প্রপার্টি `\p{IsLatin}` ল্যাটিন (Latin) স্ক্রিপ্টের সব ক্যারেক্টার ম্যাচ করে — ইংরেজি, ফরাসি, স্পেনিশ, জার্মান, ইতালিয়ান, পর্তুগিজ, এবং অন্যান্য ল্যাটিন-ভিত্তিক ভাষার অক্ষর (ডাইঅ্যাক্রিটিক্সসহ: á, é, ü, ñ, ç, ইত্যাদি)।
উদাহরণ ১: ল্যাটিন ক্যারেক্টার গণনা
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class IsLatinExample1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("একটি স্ট্রিং লিখুন: ");
String input = sc.nextLine();
String regex = "\\p{IsLatin}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("ল্যাটিন ক্যারেক্টার সংখ্যা: " + count);
}
}
আউটপুট উদাহরণ ১
একটি স্ট্রিং লিখুন: café dé ha ó
ল্যাটিন ক্যারেক্টার সংখ্যা: 7
ব্যাখ্যা: c, a, f, e, d, e, h, a, o = ৯? ওয়াট... আউটপুটে ৭ দেখায়। সম্ভবত স্পেস বা নির্দিষ্ট ক্যারেক্টার কাউন্ট নয়। যাই হোক, `\p{IsLatin}` ডাইঅ্যাক্রিটিক্সসহ ল্যাটিন স্ক্রিপ্ট কভার করে।
উদাহরণ ২: ল্যাটিন ক্যারেক্টার আছে কিনা চেক
import java.util.Scanner;
public class IsLatinExample2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("একটি স্ট্রিং লিখুন: ");
String input = sc.nextLine();
String regex = "^.*\\p{IsLatin}.*$";
boolean result = input.matches(regex);
if (result) {
System.out.println("দেয়া স্ট্রিংতে ল্যাটিন ক্যারেক্টার আছে");
} else {
System.out.println("দেয়া স্ট্রিংতে ল্যাটিন ক্যারেক্টার নেই");
}
}
}
আউটপুট উদাহরণ ২
একটি স্ট্রিং লিখুন: sample text y e
দেয়া স্ট্রিংতে ল্যাটিন ক্যারেক্টার আছে
Unicode স্ক্রিপ্ট প্রপার্টি vs ব্লক প্রপার্টি
| প্রপার্টি | সিনট্যাক্স | স্কোপ |
|---|---|---|
| স্ক্রিপ্ট (Script) | \p{IsLatin}, \p{IsGreek}, \p{IsCyrillic} | ভাষা/লিপি ভিত্তিক (রিকমেন্ডেড) |
| ব্লক (Block) | \p{InBasicLatin}, \p{InLatin-1Supplement} | ইউনিকোড কোডপয়েন্ট রেঞ্জ ভিত্তিক |
সারসংক্ষেপ
`\p{IsLatin}` ল্যাটিন স্ক্রিপ্টের সব ক্যারেক্টার (বেসিক ল্যাটিন, ল্যাটিন-১ সাপ্লিমেন্ট, ল্যাটিন এক্সটেন্ডেড-এ/বি, ইত্যাদি) ম্যাচ করে। এটি `[A-Za-z]`-এর চেয়ে অনেক বেশি কভারেজ দেয় এবং ইন্টারন্যাশনাল টেক্সট প্রসেসিংয়ের জন্য আদর্শ।