কম্পিউটার টিউটোরিয়াল

জাভা রেগুলার এক্সপ্রেশন: POSIX ক্যারেক্টার ক্লাস \p{Lu} (Uppercase Letters)


\p{Lu} ক্যারেক্টার ক্লাস

Unicode ক্যাটেগরি `\p{Lu}` (Letter, Uppercase) সমস্ত বড় হাতের (uppercase) অক্ষর ম্যাচ করে — শুধু ইংরেজি নয়, সব স্ক্রিপ্টের (ল্যাটিন, গ্রিক, সিরিলিক, আরমেনিয়ান, ইত্যাদি)।

উদাহরণ ১: বড় হাতের অক্ষর গণনা

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class PosixLuExample1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("একটি স্ট্রিং লিখুন: ");
        String input = sc.nextLine();
        
        String regex = "\\p{Lu}";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        
        int count = 0;
        while (matcher.find()) {
            count++;
        }
        
        System.out.println("বড় হাতের অক্ষর সংখ্যা: " + count);
    }
}

আউটপুট উদাহরণ ১

একটি স্ট্রিং লিখুন: Hello HOW are YOU
বড় হাতের অক্ষর সংখ্যা: 7

ব্যাখ্যা: H, H, O, W, Y, O, U = ৭টি।

উদাহরণ ২: বড় হাতের অক্ষর ধারণকারী স্ট্রিং ফিল্টার

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class PosixLuExample2 {
    public static void main(String[] args) {
        String regex = "^.*\\p{Lu}.*$";
        Scanner sc = new Scanner(System.in);
        System.out.println("৫টি ইনপুট স্ট্রিং লিখুন: ");
        String[] input = new String[5];
        for (int i = 0; i < 5; i++) {
            input[i] = sc.nextLine();
        }
        
        Pattern p = Pattern.compile(regex);
        System.out.println("ল্যাটিন অক্ষর ধারণকারী স্ট্রিংগুলো:");
        for (int i = 0; i < 5; i++) {
            Matcher m = p.matcher(input[i]);
            if (m.matches()) {
                System.out.println(m.group());
            }
        }
    }
}

আউটপুট উদাহরণ ২

৫টি ইনপুট স্ট্রিং লিখুন: 
hello how are you
This is SAMPLE text
123 465
TEST DATA
#$% &# *#

ল্যাটিন অক্ষর ধারণকারী স্ট্রিংগুলো:
This is SAMPLE text
TEST DATA

Unicode লেটার ক্যাটেগরি টেবিল

ক্যাটেগরিব্যাখ্যারেজেক্স
LuLetter, Uppercase\p{Lu}
LlLetter, Lowercase\p{Ll}
LtLetter, Titlecase\p{Lt}
LmLetter, Modifier\p{Lm}
LoLetter, Other\p{Lo}
L (সকল)সব লেটার\p{L}

সারসংক্ষেপ

`\p{Lu}` সব স্ক্রিপ্টের বড় হাতের অক্ষর ম্যাচ করে। এটি `[A-Z]`-এর চেয়ে বেশি পাওয়ারফুল এবং i18n-ফ্রেন্ডলি। টেক্সট অ্যানালিসিস, কেস-সেনসিটিভ ভ্যালিডেশন, প্রপার নেইম ডিটেকশনে এটি ব্যবহার করুন।

  1. জাভা রেজেক্সে POSIX ক্যারেক্টার ক্লাস \p{Alpha}

  2. জাভা রেজেক্সে POSIX ক্যারেক্টার ক্লাস \p{ASCII}

  3. জাভা রেজেক্সে POSIX ক্যারেক্টার ক্লাস \p{Upper}

  4. জাভা রেজেক্সে POSIX ক্যারেক্টার ক্লাস \p{Lower}