Java রেগুলার এক্সপ্রেশন (Regex) এর মধ্যে Unicode Character Matching খুবই গুরুত্বপূর্ণ, বিশেষ করে যখন আপনি বিভিন্ন ভাষা বা স্ক্রিপ্টের অক্ষরের সাথে কাজ করছেন। Unicode-এর সাহায্যে বিভিন্ন ভাষার অক্ষরগুলোকে একক স্ট্যান্ডার্ডে একত্রিত করা সম্ভব হয়। Java রেগুলার এক্সপ্রেশন প্যাটার্নে Unicode Character Matching এবং \p{IsLatin}, \p{IsGreek} এর মত Unicode Property Escapes ব্যবহার করা যায়, যা একটি নির্দিষ্ট ইউনিকোড ব্লকের মধ্যে চরিত্রগুলি মেলানোর জন্য সাহায্য করে।
1. Unicode Character Matching:
Unicode Character Matching ব্যবহার করে, আপনি নির্দিষ্ট ইউনিকোড ব্লক বা স্ক্রিপ্টের অক্ষরের সাথে ম্যাচ করতে পারেন। Java রেগুলার এক্সপ্রেশন \p{} সিম্বলের মাধ্যমে ইউনিকোড ব্লক বা প্রপার্টি নির্দিষ্ট করে ম্যাচিং করতে সক্ষম।
\p{} Syntax:
\p{Is<ScriptName>}: এটি ইউনিকোড স্ক্রিপ্ট বা ব্লক দিয়ে চরিত্রগুলোর ম্যাচ চেক করতে ব্যবহৃত হয়।\p{}এর মধ্যে ইউনিকোড স্ক্রিপ্ট বা প্রপার্টি সন্নিবেশ করা হয়।
উদাহরণস্বরূপ, আপনি \p{IsLatin} ব্যবহার করে ল্যাটিন অক্ষরগুলোর সাথে ম্যাচ করতে পারবেন, বা \p{IsGreek} ব্যবহার করে গ্রিক অক্ষরগুলোর সাথে।
2. \p{IsLatin} এবং \p{IsGreek} এর ব্যবহার:
\p{IsLatin}:
এটি সমস্ত ল্যাটিন অক্ষর (A-Z, a-z, 0-9 এবং কিছু অন্যান্য ক্যারেক্টার) মেলানোর জন্য ব্যবহার করা হয়।
\p{IsGreek}:
এটি সমস্ত গ্রিক অক্ষর (α, β, γ, δ, ... etc) মেলানোর জন্য ব্যবহৃত হয়।
উদাহরণ: \p{IsLatin} এবং \p{IsGreek} ব্যবহার করা:
import java.util.regex.*;
public class UnicodeCharacterMatchingExample {
public static void main(String[] args) {
// Pattern for Latin characters
Pattern latinPattern = Pattern.compile("[\\p{IsLatin}]+");
// Test string with Latin characters
Matcher latinMatcher = latinPattern.matcher("Hello World");
System.out.println("Latin Match: " + latinMatcher.matches()); // Output: true
// Pattern for Greek characters
Pattern greekPattern = Pattern.compile("[\\p{IsGreek}]+");
// Test string with Greek characters
Matcher greekMatcher = greekPattern.matcher("Γειά σας");
System.out.println("Greek Match: " + greekMatcher.matches()); // Output: true
// Test string that contains both Latin and Greek characters
Matcher mixedMatcher = latinPattern.matcher("Hello Γειά");
System.out.println("Mixed Match: " + mixedMatcher.matches()); // Output: false
}
}
Output:
Latin Match: true
Greek Match: true
Mixed Match: false
ব্যাখ্যা:
\p{IsLatin}: এই প্যাটার্নটি শুধুমাত্র ল্যাটিন অক্ষর (যেমন,A-Z,a-z) মেলাতে ব্যবহৃত হয়েছে। স্ট্রিং"Hello World"পুরোপুরি ল্যাটিন অক্ষরের মধ্যে রয়েছে, তাই এটি সফলভাবে ম্যাচ করেছে।\p{IsGreek}: এই প্যাটার্নটি গ্রিক অক্ষরের মধ্যে মেলানোর জন্য ব্যবহৃত হয়েছে।"Γειά σας"এই গ্রিক স্ট্রিংটি সম্পূর্ণ গ্রিক অক্ষরের মধ্যে রয়েছে, তাই এটি ম্যাচ করেছে।"Hello Γειά"স্ট্রিংটি একাধিক ভাষার অক্ষর ধারণ করে, তাই এটি শুধু ল্যাটিন অক্ষরের জন্য ম্যাচ হবে না।
3. Unicode Property Escapes:
Unicode Property Escapes (যেমন \p{IsLatin}, \p{IsGreek}) ব্যবহার করা হয় স্ট্রিংয়ের মধ্যে নির্দিষ্ট ইউনিকোড ক্যাটেগরি বা স্ক্রিপ্টের অক্ষরগুলো ম্যাচ করতে। এই প্যাটার্নগুলো ইউনিকোড প্রপার্টি সিস্টেমের অধীনে কাজ করে, যা Unicode ডাটাবেসে প্রতিটি ক্যারেক্টারের বৈশিষ্ট্য সংজ্ঞায়িত করা হয়েছে।
ইউনিকোড স্ক্রিপ্টের উদাহরণ:
\p{IsLatin}: ল্যাটিন স্ক্রিপ্টের চরিত্র।\p{IsGreek}: গ্রিক স্ক্রিপ্টের চরিত্র।\p{IsCyrillic}: সিরিলিক স্ক্রিপ্টের চরিত্র।\p{IsArabic}: আরবিক স্ক্রিপ্টের চরিত্র।\p{IsHiragana}: হিরাগানা স্ক্রিপ্টের চরিত্র।
4. বিস্তারিত ব্যবহার উদাহরণ:
Match Latin and Greek Characters Together:
import java.util.regex.*;
public class UnicodePatternExample {
public static void main(String[] args) {
// Matching Latin characters
Pattern latinPattern = Pattern.compile("[\\p{IsLatin}]+");
// Matching Greek characters
Pattern greekPattern = Pattern.compile("[\\p{IsGreek}]+");
// Test strings
String latinText = "Hello";
String greekText = "Χαίρετε";
// Matching Latin Text
Matcher latinMatcher = latinPattern.matcher(latinText);
System.out.println("Latin Match: " + latinMatcher.matches()); // true
// Matching Greek Text
Matcher greekMatcher = greekPattern.matcher(greekText);
System.out.println("Greek Match: " + greekMatcher.matches()); // true
// Test Mixed Characters
String mixedText = "Hello Χαίρετε";
Matcher mixedMatcher = latinPattern.matcher(mixedText);
System.out.println("Mixed Match: " + mixedMatcher.matches()); // false
}
}
Output:
Latin Match: true
Greek Match: true
Mixed Match: false
ব্যাখ্যা:
[\\p{IsLatin}]+: এই প্যাটার্নটি শুধুমাত্র ল্যাটিন অক্ষরগুলি মেলাবে।"Hello"স্ট্রিংটি শুধুমাত্র ল্যাটিন অক্ষরের মধ্যে রয়েছে, তাই এটি ম্যাচ করবে।[\\p{IsGreek}]+: এই প্যাটার্নটি শুধুমাত্র গ্রিক অক্ষরগুলির মধ্যে মেলাবে।"Χαίρετε"এই গ্রিক স্ট্রিংটি সম্পূর্ণ গ্রিক অক্ষর দিয়ে গঠিত, তাই এটি ম্যাচ করবে।- Mixed Text Matching:
"Hello Χαίρετε"স্ট্রিংটি মিশ্রিত ল্যাটিন এবং গ্রিক অক্ষরের মধ্যে রয়েছে, তাই"\\p{IsLatin}"প্যাটার্নের সাথে মিলবে না, কারণ এটি শুধুমাত্র ল্যাটিন অক্ষর মেলানোর জন্য ডিজাইন করা।
- Unicode Character Matching এর মাধ্যমে আপনি Java রেগুলার এক্সপ্রেশনে ইউনিকোডের নির্দিষ্ট ব্লক বা স্ক্রিপ্টের অক্ষরগুলো মেলাতে পারেন।
\p{IsLatin}এবং\p{IsGreek}ব্যবহার করে আপনি যথাক্রমে ল্যাটিন এবং গ্রিক অক্ষরের জন্য প্যাটার্ন মেলাতে পারেন।- এই ধরনের প্যাটার্নগুলি আপনার রেগুলার এক্সপ্রেশনকে বিভিন্ন ভাষা বা স্ক্রিপ্টের সাপোর্ট দিতে সহায়তা করে, বিশেষত যদি আপনি আন্তর্জাতিক বা বহুভাষিক ডেটা প্রসেস করতে চান।
Read more