Java Regular Expressions (Regex) শক্তিশালী টেক্সট ম্যানিপুলেশন এবং প্যাটার্ন ম্যাচিং টুল হিসেবে ব্যবহৃত হয়। POSIX character classes এবং Unicode/Named character classes হল এমন কিছু ফিচার যা আপনাকে বিশেষ ধরনের ক্যারেক্টারগুলির সাথে কাজ করার জন্য আরও নমনীয় এবং উন্নত পদ্ধতি প্রদান করে।
এই ফিচারগুলির সাহায্যে আপনি স্ট্রিংয়ে বিশেষ ক্যারেক্টার শনাক্ত, খুঁজে বের বা প্রক্রিয়া করতে পারেন, যা বিভিন্ন ভাষার বা সিস্টেমের জন্য প্রয়োজনীয় হতে পারে।
1. POSIX Character Classes:
POSIX character classes Java Regular Expressions এ কিছু নির্দিষ্ট ক্যারেক্টারের শ্রেণী (class) তৈরি করতে ব্যবহৃত হয়, যা Unicode এবং অন্যান্য বিশেষ ধরনের ক্যারেক্টারগুলির জন্য সুবিধাজনক।
Java তে POSIX character classes কে \p{} সিনট্যাক্সের মাধ্যমে ব্যবহার করা হয়।
POSIX Character Classes:
\p{Lower}: ছোট হাতের অক্ষর (lowercase letters)\p{Upper}: বড় হাতের অক্ষর (uppercase letters)\p{Digit}: ডিজিট বা সংখ্যা (digits)\p{Alpha}: অক্ষর (letters)\p{Alnum}: অক্ষর অথবা সংখ্যা (alphanumeric)\p{Space}: স্পেস বা হোয়াইটস্পেস (whitespace characters)
ব্যবহার উদাহরণ:
\p{Lower}: ছোট হাতের অক্ষর- ব্যবহার: এটি সমস্ত ছোট হাতের অক্ষর (a-z) মেলে।
import java.util.regex.*;
public class POSIXLowerExample {
public static void main(String[] args) {
String pattern = "\\p{Lower}"; // Matching lowercase characters
String text = "abc DEF 123";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(text);
while (m.find()) {
System.out.println("Found lowercase letter: " + m.group());
}
}
}
আউটপুট:
Found lowercase letter: a
Found lowercase letter: b
Found lowercase letter: c
\p{Upper}: বড় হাতের অক্ষর- ব্যবহার: এটি সমস্ত বড় হাতের অক্ষর (A-Z) মেলে।
import java.util.regex.*;
public class POSIXUpperExample {
public static void main(String[] args) {
String pattern = "\\p{Upper}"; // Matching uppercase characters
String text = "abc DEF 123";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(text);
while (m.find()) {
System.out.println("Found uppercase letter: " + m.group());
}
}
}
আউটপুট:
Found uppercase letter: D
Found uppercase letter: E
Found uppercase letter: F
\p{Digit}: সংখ্যা (digits)- ব্যবহার: এটি সমস্ত ডিজিট (0-9) মেলে।
import java.util.regex.*;
public class POSIXDigitExample {
public static void main(String[] args) {
String pattern = "\\p{Digit}"; // Matching digits
String text = "abc 123 DEF";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(text);
while (m.find()) {
System.out.println("Found digit: " + m.group());
}
}
}
আউটপুট:
Found digit: 1
Found digit: 2
Found digit: 3
2. Unicode Character Classes:
Java Regular Expressions এ Unicode এবং Named character classes ব্যবহার করা যায় যা বৈশ্বিক এবং বিশেষ ভাষার ক্যারেক্টারকে আরও সহজে মেলানোর জন্য উপকারী।
Unicode শ্রেণীগুলি \p{} ব্যবহার করে নির্দেশ করা হয়। প্রতিটি \p{} ইউনিকোডের নির্দিষ্ট ক্যারেক্টারের গোষ্ঠী (category) নির্দেশ করে।
Unicode Character Classes:
\p{L}: সমস্ত অক্ষর (letters) (Unicode Letter)\p{Lu}: সমস্ত বড় হাতের অক্ষর (uppercase letters)\p{Ll}: সমস্ত ছোট হাতের অক্ষর (lowercase letters)\p{N}: সমস্ত সংখ্যা (digits) (Unicode digit)\p{Z}: স্পেস (whitespace characters)\p{P}: পাঙ্কচুয়েশন (punctuation characters)\p{M}: মডিফাইং ক্যারেক্টার (mark characters)
ব্যবহার উদাহরণ:
\p{L}: সমস্ত অক্ষর (letters)- ব্যবহার: এটি সমস্ত অক্ষরকে (Unicode Letter) মেলে।
import java.util.regex.*;
public class UnicodeLetterExample {
public static void main(String[] args) {
String pattern = "\\p{L}"; // Matching any letter (Unicode letter)
String text = "abc DEF 123";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(text);
while (m.find()) {
System.out.println("Found letter: " + m.group());
}
}
}
আউটপুট:
Found letter: a
Found letter: b
Found letter: c
Found letter: D
Found letter: E
Found letter: F
\p{N}: সমস্ত সংখ্যা (digits)- ব্যবহার: এটি সমস্ত সংখ্যা (Unicode digit) মেলে।
import java.util.regex.*;
public class UnicodeDigitExample {
public static void main(String[] args) {
String pattern = "\\p{N}"; // Matching any digit (Unicode digit)
String text = "abc 123 DEF";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(text);
while (m.find()) {
System.out.println("Found digit: " + m.group());
}
}
}
আউটপুট:
Found digit: 1
Found digit: 2
Found digit: 3
\p{Z}: স্পেস (whitespace characters)- ব্যবহার: এটি সমস্ত স্পেস (whitespace) ক্যারেক্টারকে মেলে।
import java.util.regex.*;
public class UnicodeSpaceExample {
public static void main(String[] args) {
String pattern = "\\p{Z}"; // Matching whitespace characters
String text = "hello world";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(text);
while (m.find()) {
System.out.println("Found space: " + m.group());
}
}
}
আউটপুট:
Found space:
- POSIX character classes এবং Unicode character classes Java Regex-এ গুরুত্বপূর্ণ ভূমিকা পালন করে, কারণ এগুলি আপনাকে টেক্সট ম্যানিপুলেশন, অনুসন্ধান এবং ভ্যালিডেশন আরও সহজ এবং দক্ষভাবে করতে সাহায্য করে।
- POSIX শ্রেণীগুলি ব্যবহার করে আপনি সহজেই ছোট হাতের অক্ষর, বড় হাতের অক্ষর, সংখ্যা, স্পেস ইত্যাদি খুঁজে পেতে পারেন।
- Unicode character classes বিভিন্ন ভাষার এবং বিশেষ ধরনের ক্যারেক্টার (যেমন অক্ষর, সংখ্যা, স্পেস) সনাক্ত করতে সহায়ক এবং বিশ্বব্যাপী অ্যাপ্লিকেশনগুলোতে খুবই গুরুত্বপূর্ণ।
\p{}সিনট্যাক্সের মাধ্যমে আপনি Unicode এবং POSIX শ্রেণীগুলোর সাথে কাজ করতে পারবেন, যা Java Regex ব্যবহারকে আরও শক্তিশালী এবং নমনীয় করে তোলে।
Read more