Java Regular Expressions (Regex) এর মধ্যে Unicode Blocks এবং Script Matching হলো এমন দুটি শক্তিশালী বৈশিষ্ট্য যা স্ট্রিং ম্যানিপুলেশন এবং প্যাটার্ন ম্যাচিংয়ের ক্ষেত্রে বিশেষভাবে কাজে আসে। এই দুটি বৈশিষ্ট্য Java 7 থেকে আসা Unicode Character Classes এর মাধ্যমে স্ট্রিংয়ের মধ্যে ইউনিকোড ব্লক এবং স্ক্রিপ্ট চিহ্নিত করতে সাহায্য করে।
1. Unicode Blocks in Java Regex:
Java রেগুলার এক্সপ্রেশনে Unicode Blocks ব্যবহার করে আপনি একটি নির্দিষ্ট ইউনিকোড ব্লকে থাকা অক্ষরগুলোকে ম্যাচ করতে পারেন। এটি Unicode Character Class হিসেবে কাজ করে, যা একটি নির্দিষ্ট ইউনিকোড ব্লকের অক্ষরের সাথে মিল খুঁজে।
Unicode Block এর Syntax:
\p{Is<BlockName>}
এখানে, Is<BlockName> একটি ইউনিকোড ব্লকের নাম যা আপনি প্যাটার্নে ব্যবহার করতে পারেন। কিছু সাধারণ Unicode Block গুলি হলো:
IsBasic_Latin: এর মধ্যে 0-127 পর্যন্ত ASCII অক্ষর।IsLatin_1_Supplement: 128-255 পর্যন্ত অক্ষর।IsGreek: গ্রীক ভাষার অক্ষর।IsCyrillic: সিরিলিক ভাষার অক্ষর।IsHan: চীনা, জাপানি, কোরিয়ান হানজির অক্ষর।
উদাহরণ:
import java.util.regex.*;
public class UnicodeBlockExample {
public static void main(String[] args) {
// Unicode block matching for Greek characters
String text = "Hello, this is a test with Greek characters: α, β, γ";
// Pattern to match Greek letters
Pattern pattern = Pattern.compile("\\p{IsGreek}+");
Matcher matcher = pattern.matcher(text);
// Find and print matches
while (matcher.find()) {
System.out.println("Found Greek match: " + matcher.group());
}
}
}
Output:
Found Greek match: α
Found Greek match: β
Found Greek match: γ
ব্যাখ্যা:
\p{IsGreek}+প্যাটার্নটি Greek ইউনিকোড ব্লকের অক্ষর খুঁজে বের করতে ব্যবহৃত হয়েছে। এখানেα,β, এবংγঅক্ষরগুলিকে মেলা হয়েছে, কারণ তারা Greek ব্লকের অংশ।
2. Script Matching in Java Regex:
Script Matching ইউনিকোড স্ক্রিপ্টের সাথে সম্পর্কিত অক্ষরগুলো খুঁজে বের করতে ব্যবহৃত হয়। এটি Unicode Scripts এর উপর ভিত্তি করে প্যাটার্ন ম্যাচিং করার একটি পদ্ধতি। Unicode Scripts এমন একটি নির্দিষ্ট ইউনিকোড ব্লক যেখানে একটি ভাষার অক্ষর থাকে। যেমন, ইংরেজি অক্ষর Latin স্ক্রিপ্টের অংশ, আর হিন্দি বা বাংলা অক্ষর Devanagari বা Bengali স্ক্রিপ্টের অংশ।
Script Matching এর Syntax:
\p{Is<ScriptName>}
এখানে, Is<ScriptName> নির্দেশ করে যে এটি একটি নির্দিষ্ট স্ক্রিপ্টের অক্ষরের সাথে মিলাবে। কিছু সাধারণ Unicode Scripts হলো:
IsLatin: ল্যাটিন স্ক্রিপ্টের অক্ষর।IsCyrillic: সিরিলিক স্ক্রিপ্টের অক্ষর।IsDevanagari: দেবনাগরি স্ক্রিপ্টের অক্ষর।IsBengali: বাংলা স্ক্রিপ্টের অক্ষর।
উদাহরণ:
import java.util.regex.*;
public class ScriptMatchingExample {
public static void main(String[] args) {
// String containing English, Hindi, and Bengali characters
String text = "Hello, नमस्ते, হ্যালো";
// Pattern to match Hindi characters (Devanagari script)
Pattern devanagariPattern = Pattern.compile("\\p{IsDevanagari}+");
Matcher devanagariMatcher = devanagariPattern.matcher(text);
// Find and print matches for Devanagari script
while (devanagariMatcher.find()) {
System.out.println("Found Hindi match: " + devanagariMatcher.group());
}
// Pattern to match Bengali characters (Bengali script)
Pattern bengaliPattern = Pattern.compile("\\p{IsBengali}+");
Matcher bengaliMatcher = bengaliPattern.matcher(text);
// Find and print matches for Bengali script
while (bengaliMatcher.find()) {
System.out.println("Found Bengali match: " + bengaliMatcher.group());
}
}
}
Output:
Found Hindi match: नमस्ते
Found Bengali match: হ্যালো
ব্যাখ্যা:
\p{IsDevanagari}+প্যাটার্নটি Devanagari স্ক্রিপ্টের অক্ষরগুলি খুঁজে বের করতে ব্যবহৃত হয়, যেমনनमस्ते(হিন্দি ভাষার অক্ষর)।\p{IsBengali}+প্যাটার্নটি Bengali স্ক্রিপ্টের অক্ষরগুলি খুঁজে বের করতে ব্যবহৃত হয়, যেমনহ্যালো(বাংলা ভাষার অক্ষর)।
3. Unicode Block এবং Script Matching এর ব্যবহার:
Unicode Blocks এবং Script Matching ব্যবহার করে আপনি বিশেষ ইউনিকোড ব্লক বা স্ক্রিপ্টের অক্ষরের সাথে স্ট্রিংয়ের প্যাটার্ন ম্যাচ করতে পারেন। এই পদ্ধতি বিভিন্ন ভাষার মধ্যে কাজ করার সময় বিশেষভাবে উপকারী, যেমন:
- বিশেষ ভাষার অক্ষর চিহ্নিত করা (যেমন বাংলা, হিন্দি, গ্রীক)
- বিভিন্ন স্ক্রিপ্টের অক্ষর প্রক্রিয়া করা (যেমন ল্যাটিন, সিরিলিক)
অন্যান্য উদাহরণ:
বিশেষ ল্যাটিন অক্ষর খুঁজে বের করা:
Pattern latinPattern = Pattern.compile("\\p{IsLatin}+"); Matcher latinMatcher = latinPattern.matcher("Hello"); while (latinMatcher.find()) { System.out.println("Found Latin match: " + latinMatcher.group()); }Cyrillic স্ক্রিপ্টের অক্ষর খুঁজে বের করা:
Pattern cyrillicPattern = Pattern.compile("\\p{IsCyrillic}+"); Matcher cyrillicMatcher = cyrillicPattern.matcher("Привет"); while (cyrillicMatcher.find()) { System.out.println("Found Cyrillic match: " + cyrillicMatcher.group()); }
- Unicode Blocks এবং Script Matching Java Regex এ খুবই শক্তিশালী টুলস যা আপনাকে বিভিন্ন স্ক্রিপ্ট বা ইউনিকোড ব্লকের অক্ষরের সাথে স্ট্রিংয়ের মেলানো এবং ফিল্টার করতে সাহায্য করে।
- Unicode Blocks এবং Unicode Scripts ব্যবহার করে আপনি বিভিন্ন ভাষার অক্ষরের মেলানো এবং প্রক্রিয়াকরণ করতে পারেন, যা বিভিন্ন আন্তর্জাতিক ভাষার কাজ করতে সাহায্য করে।
Read more