Java Regular Expressions (Regex) একটি শক্তিশালী টুল যা আপনাকে নির্দিষ্ট প্যাটার্নের সাথে টেক্সট ম্যানিপুলেট বা ম্যাচ করতে সাহায্য করে। Custom Character Classes তৈরি করা একটি গুরুত্বপূর্ণ টেকনিক যা আপনাকে regex প্যাটার্নে আপনার নিজস্ব ক্যারেক্টার সীমা নির্ধারণ করতে দেয়।
Custom Character Classes এর ধারণা:
Custom Character Classes তৈরি করতে [ ] (ব্র্যাকেট) ব্যবহার করা হয়। এর মধ্যে, আপনি নির্দিষ্ট ক্যারেক্টার বা ক্যারেক্টারের রেঞ্জ (যেমন, a-z, 0-9) প্রদান করতে পারেন। এছাড়া, [^ ] ব্যবহার করে আপনি negation বা inversion করতে পারেন, যেখানে এই প্যাটার্নটি উল্লিখিত ক্যারেক্টারগুলির বাইরে থাকা কিছু মেলাবে।
Custom Character Classes উদাহরণ:
[a-z]:- এটি অক্ষরের ছোট হাতের (lowercase letters) মধ্যে যেকোনো একটি মেলে।
- উদাহরণ:
aথেকেzপর্যন্ত কোনো এক অক্ষর।
[^0-9]:- এটি সংখ্যা নয় এমন যে কোনো ক্যারেক্টার মেলে।
^চিহ্নটি negate বা উল্টানো কাজ করে, অর্থাৎ এটি 0 থেকে 9 পর্যন্ত কোন সংখ্যা ছাড়া সবকিছু মেলে।
- এটি সংখ্যা নয় এমন যে কোনো ক্যারেক্টার মেলে।
[a-zA-Z]:- এটি অক্ষরের ছোট এবং বড় হাতের (uppercase and lowercase letters) মধ্যে যেকোনো একটি মেলে।
[0-9]:- এটি সংখ্যা (digits) 0 থেকে 9 পর্যন্ত যেকোনো একটি মেলে।
[a-zA-Z0-9]:- এটি অক্ষর এবং সংখ্যা যেকোনো একটি মেলে।
Custom Character Classes তৈরির জন্য সাধারণ সিনট্যাক্স:
[ ]: ব্র্যাকেটের মধ্যে নির্দিষ্ট ক্যারেক্টার রেঞ্জ অথবা সিলেক্ট করা ক্যারেক্টার।[^ ]: negation বা উল্টো চরিত্রের জন্য, যেগুলি বাদ দেওয়া হবে।
Java Regex: Custom Character Classes এর উদাহরণ কোড
এখানে কিছু Custom Character Classes এর উদাহরণ দেওয়া হলো, যা আপনি Java Regex তে ব্যবহার করতে পারেন।
1. Character Range Matching (e.g., [a-z], [A-Z])
import java.util.regex.*;
public class CustomCharacterClassExample {
public static void main(String[] args) {
// Pattern to match lowercase letters
String pattern = "[a-z]"; // Matches any lowercase letter
String text = "abcXYZ123";
// Compile the pattern
Pattern p = Pattern.compile(pattern);
// Create a matcher to find the pattern in the text
Matcher m = p.matcher(text);
// Find matching characters
while (m.find()) {
System.out.println("Found lowercase letter: " + m.group());
}
}
}
আউটপুট:
Found lowercase letter: a
Found lowercase letter: b
Found lowercase letter: c
2. Matching Non-Digit Characters ([^0-9])
import java.util.regex.*;
public class CustomCharacterClassExample {
public static void main(String[] args) {
// Pattern to match any non-digit character
String pattern = "[^0-9]"; // Matches any character that is NOT a digit
String text = "abc123xyz";
// Compile the pattern
Pattern p = Pattern.compile(pattern);
// Create a matcher to find the pattern in the text
Matcher m = p.matcher(text);
// Find matching characters
while (m.find()) {
System.out.println("Non-digit character: " + m.group());
}
}
}
আউটপুট:
Non-digit character: a
Non-digit character: b
Non-digit character: c
Non-digit character: x
Non-digit character: y
Non-digit character: z
3. Matching Alphanumeric Characters ([a-zA-Z0-9])
import java.util.regex.*;
public class CustomCharacterClassExample {
public static void main(String[] args) {
// Pattern to match any alphanumeric character
String pattern = "[a-zA-Z0-9]"; // Matches any letter or digit
String text = "abc123@xyz";
// Compile the pattern
Pattern p = Pattern.compile(pattern);
// Create a matcher to find the pattern in the text
Matcher m = p.matcher(text);
// Find matching characters
while (m.find()) {
System.out.println("Alphanumeric character: " + m.group());
}
}
}
আউটপুট:
Alphanumeric character: a
Alphanumeric character: b
Alphanumeric character: c
Alphanumeric character: 1
Alphanumeric character: 2
Alphanumeric character: 3
Alphanumeric character: x
Alphanumeric character: y
Alphanumeric character: z
4. Matching Uppercase and Lowercase Letters ([a-zA-Z])
import java.util.regex.*;
public class CustomCharacterClassExample {
public static void main(String[] args) {
// Pattern to match any uppercase or lowercase letter
String pattern = "[a-zA-Z]"; // Matches any letter
String text = "abcDEF123";
// Compile the pattern
Pattern p = Pattern.compile(pattern);
// Create a matcher to find the pattern in the text
Matcher m = p.matcher(text);
// Find matching characters
while (m.find()) {
System.out.println("Letter: " + m.group());
}
}
}
আউটপুট:
Letter: a
Letter: b
Letter: c
Letter: D
Letter: E
Letter: F
Custom Character Classes এর কিছু সাধারণ ব্যবহার:
- Character Ranges:
- আপনি
[a-z]এর মাধ্যমে lowercase অক্ষর,[A-Z]এর মাধ্যমে uppercase অক্ষর এবং[0-9]এর মাধ্যমে digits ম্যাচ করতে পারেন।
- আপনি
- Matching Specific Sets:
[aeiou]এর মাধ্যমে vowels (স্বরবর্ণ) এবং[^aeiou]এর মাধ্যমে consonants (ব্যঞ্জনবর্ণ) মেলাতে পারেন।
- Combining Multiple Ranges:
[a-zA-Z0-9]বা[a-fA-F0-9]এর মাধ্যমে অক্ষর এবং সংখ্যা একত্রে ম্যাচ করা যায়।
- Negation:
[^ ]ব্যবহার করে আপনি নির্দিষ্ট ক্যারেক্টার বাদ দিয়ে বাকী ক্যারেক্টারগুলোর সাথে মিল করতে পারেন। যেমন:[^0-9]এর মাধ্যমে শুধুমাত্র ডিজিট ছাড়া সব ক্যারেক্টার মেলে।
Java Regular Expressions (Regex) এর Custom Character Classes খুবই শক্তিশালী এবং এর মাধ্যমে আপনি টেক্সটের নির্দিষ্ট অংশ সুনির্দিষ্টভাবে খুঁজে পেতে পারেন। Character ranges যেমন [a-z], [^0-9], এবং [a-zA-Z0-9] ব্যবহার করে আপনি অনেক ধরনের টেক্সট ম্যানিপুলেশন সহজে করতে পারবেন। Java regex-এর সাথে Custom Character Classes ব্যবহার করে আপনি জটিল প্যাটার্ন ম্যানিপুলেশন, ভ্যালিডেশন এবং টেক্সট প্রসেসিং কাজে সাহায্য পেতে পারেন।
Read more