Character Classes হল Regular Expressions (Regex) এর অংশ, যা নির্দিষ্ট চরিত্র বা চরিত্রের গ্রুপ চিহ্নিত করতে ব্যবহৃত হয়। Java-তে java.util.regex প্যাকেজের মাধ্যমে আপনি এই রেগুলার এক্সপ্রেশন এবং Character Classes ব্যবহার করে টেক্সট ম্যানিপুলেট এবং মাচিং করতে পারেন।
Character Classes দিয়ে আপনি সাধারণত:
- ডিজিট (digits)
- অক্ষর (letters)
- স্পেস (whitespaces)
- পংক্তির শুরু বা শেষ (start or end of line) ইত্যাদি চিহ্নিত করতে পারেন।
Java Character Classes
কিছু সাধারণ Character Classes:
\\d: যেকোনো ডিজিট (0-9)\\D: যেকোনো ডিজিট নয়\\w: যেকোনো শব্দ অক্ষর (অক্ষর, ডিজিট, আন্ডারস্কোর)\\W: যেকোনো শব্দ অক্ষর নয়\\s: স্পেস বা হোয়াইটস্পেস (স্পেস, ট্যাব, নতুন লাইনের মতো)\\S: স্পেস নয়\\b: শব্দ সীমানা (word boundary)
Practical Example of Character Classes in Java:
এখানে আমরা Character Classes ব্যবহার করে বিভিন্ন টাস্ক যেমন ডিজিট চেক করা, শব্দ তৈরি করা, স্পেস চেক করা ইত্যাদি দেখব।
Example 1: Match a Digit Using \\d
এই উদাহরণে আমরা চেক করব যে কোনো স্ট্রিংয়ের মধ্যে একটি ডিজিট উপস্থিত আছে কিনা।
import java.util.regex.*;
public class CharacterClassExample {
public static void main(String[] args) {
String input = "The number is 1234";
// Regex to match any digit
String regex = "\\d";
// Create a pattern and matcher
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
// Check if there's a digit in the input string
while (matcher.find()) {
System.out.println("Found a digit: " + matcher.group());
}
}
}
আউটপুট:
Found a digit: 1
Found a digit: 2
Found a digit: 3
Found a digit: 4
কোড বিশ্লেষণ:
\\dব্যবহার করে, আমরা ইনপুট স্ট্রিংয়ের মধ্যে থাকা ডিজিটগুলো চেক করেছি।matcher.find()প্রতিটি ডিজিটকে মেচ করে এবং সেগুলি প্রিন্ট করে।
Example 2: Match Non-Digits Using \\D
এখানে আমরা এমন সব ক্যারেক্টার মাচ করব যেগুলো ডিজিট নয়।
import java.util.regex.*;
public class NonDigitExample {
public static void main(String[] args) {
String input = "The number is 1234";
// Regex to match any non-digit character
String regex = "\\D";
// Create a pattern and matcher
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
// Check if there are non-digit characters in the input string
while (matcher.find()) {
System.out.println("Found non-digit: " + matcher.group());
}
}
}
আউটপুট:
Found non-digit: T
Found non-digit: h
Found non-digit: e
Found non-digit:
Found non-digit: n
Found non-digit: u
Found non-digit: m
Found non-digit: b
Found non-digit: e
Found non-digit: r
Found non-digit:
Found non-digit: i
Found non-digit: s
Found non-digit:
কোড বিশ্লেষণ:
\\Dরেগুলার এক্সপ্রেশনটি ডিজিট ছাড়া সব কিছু মাচ করে।- এখানে
"1234"এর বাইরে থাকা সব অক্ষরগুলির জন্য মাচিং হয়েছে।
Example 3: Match Word Characters Using \\w
এখানে আমরা এমন সব অক্ষর মাচ করব যেগুলি word characters (অক্ষর, ডিজিট, আন্ডারস্কোর)।
import java.util.regex.*;
public class WordCharacterExample {
public static void main(String[] args) {
String input = "Hello_123 World!";
// Regex to match word characters
String regex = "\\w";
// Create a pattern and matcher
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
// Check if there are word characters in the input string
while (matcher.find()) {
System.out.println("Found word character: " + matcher.group());
}
}
}
আউটপুট:
Found word character: H
Found word character: e
Found word character: l
Found word character: l
Found word character: o
Found word character: _
Found word character: 1
Found word character: 2
Found word character: 3
Found word character: W
Found word character: o
Found word character: r
Found word character: l
Found word character: d
কোড বিশ্লেষণ:
\\wরেগুলার এক্সপ্রেশনটি স্ট্রিংয়ের মধ্যে থাকা সব word characters (অক্ষর, ডিজিট, আন্ডারস্কোর) মাচ করেছে।
Example 4: Match Whitespace Using \\s
এখানে আমরা এমন সব স্পেস বা হোয়াইটস্পেস চেক করব, যেমন স্পেস, ট্যাব, অথবা নতুন লাইন।
import java.util.regex.*;
public class WhitespaceExample {
public static void main(String[] args) {
String input = "Hello world \tnew line";
// Regex to match whitespace characters
String regex = "\\s";
// Create a pattern and matcher
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
// Check if there are whitespace characters in the input string
while (matcher.find()) {
System.out.println("Found whitespace character: " + matcher.group());
}
}
}
আউটপুট:
Found whitespace character:
Found whitespace character:
Found whitespace character:
কোড বিশ্লেষণ:
\\sরেগুলার এক্সপ্রেশনটি ইনপুট স্ট্রিংয়ের মধ্যে থাকা সব ধরনের স্পেস বা হোয়াইটস্পেস মাচ করেছে। যেমন," "(স্পেস) এবং\t(ট্যাব)।
Example 5: Match Non-Word Characters Using \\W
এখানে আমরা এমন সব ক্যারেক্টার মাচ করব যেগুলি word characters নয় (অর্থাৎ স্পেস, পাঙ্কচুয়েশন, অথবা অন্য কোনো বিশেষ চিহ্ন)।
import java.util.regex.*;
public class NonWordCharacterExample {
public static void main(String[] args) {
String input = "Hello, World!";
// Regex to match non-word characters
String regex = "\\W";
// Create a pattern and matcher
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
// Check if there are non-word characters in the input string
while (matcher.find()) {
System.out.println("Found non-word character: " + matcher.group());
}
}
}
আউটপুট:
Found non-word character: ,
Found non-word character:
Found non-word character: !
কোড বিশ্লেষণ:
\\Wরেগুলার এক্সপ্রেশনটি ইনপুট স্ট্রিংয়ের মধ্যে থাকা সব non-word characters (যেমন, কমা এবং উদ্ধৃতি চিহ্ন) মাচ করেছে।
- Character Classes (যেমন
\\d,\\D,\\w,\\W,\\s,\\S) Java Regular Expressions এ স্ট্রিংয়ের মধ্যে নির্দিষ্ট ধরনের চরিত্র মাচ করার জন্য ব্যবহৃত হয়। - Practical Examples এর মাধ্যমে আমরা শিখলাম কিভাবে ডিজিট, শব্দ অক্ষর, হোয়াইটস্পেস এবং non-word characters মাচ করা যায়।
- Java
java.util.regexপ্যাকেজেPatternএবংMatcherক্লাস ব্যবহার করে আপনি এই রেগুলার এক্সপ্রেশনগুলির মাধ্যমে স্ট্রিং প্রক্রিয়াগুলিকে আরও শক্তিশালী ও কার্যকরীভাবে পরিচালনা করতে পারেন।
Read more