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

জাভা রেগুলার এক্সপ্রেশন: নন-প্রিন্টেবল ক্যারেক্টার ম্যাচ করা


নন-প্রিন্টেবল ক্যারেক্টারস ও তাদের হেক্স রিপ্রেজেন্টেশন

সাধারণত ব্যবহৃত ৭টি নন-প্রিন্টেবল ক্যারেক্টার এবং তাদের হেক্সাডেসিমেল রিপ্রেজেন্টেশন:

নামএস্কেপ সিকোয়েন্সহেক্সাডেসিমেল
বেল (Bell)\a0x07
এস্কেপ (Escape)\e0x1B
ফর্ম ফিড (Form Feed)\f0x0C
লাইন ফিড (Line Feed)\n0x0A
ক্যারেজ রিটার্ন (Carriage Return)\r0x0D
হরিজন্টাল ট্যাব (Horizontal Tab)\t0x09
ভার্টিক্যাল ট্যাব (Vertical Tab)\v0x0B

উদাহরণ ১: ট্যাব স্পেস গণনা (\t ব্যবহার করে)

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

public class NonPrintableExample1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("ইনপুট টেক্সট লিখুন: ");
        String input = sc.nextLine();
        
        String regex = "\\t"; // ট্যাব ম্যাচ
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        
        int count = 0;
        while (matcher.find()) {
            count++;
        }
        
        System.out.println("দেয়া টেক্সটে ট্যাব স্পেস সংখ্যা: " + count);
    }
}

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

sample text with tab spaces
দেয়া টেক্সটে ট্যাব স্পেস সংখ্যা: 3

উদাহরণ ২: হেক্সাডেসিমেল রিপ্রেজেন্টেশন ব্যবহার (\x09)

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

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

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

ইনপুট টেক্সট লিখুন: sample data with tab spaces
দেয়া টেক্সটে ট্যাব স্পেস সংখ্যা: 4

অন্যান্য নন-প্রিন্টেবল ক্যারেক্টার ম্যাচিং

ক্যারেক্টারএস্কেপহেক্সব্যবহার
নিউলাইন\n\x0Aলাইন ব্রেক ডিটেক্ট
ক্যারেজ রিটার্ন\r\x0DWindows লাইন এন্ডিং (\r\n)
ফর্ম ফিড\f\x0Cপেজ ব্রেক
নাল ক্যারেক্টার\0\x00স্ট্রিং টার্মিনেটর

সারসংক্ষেপ

নন-প্রিন্টেবল ক্যারেক্টার ম্যাচ করার দুটি পথ: এস্কেপ সিকোয়েন্স (`\t`, `\n`, `\r`) বা হেক্সাডেসিমেল (`\x09`, `\x0A`, `\x0D`)। উভয়ই সমতুল্য। হেক্স ফরম্যাট আরও স্পষ্ট এবং পোর্টেবল। টেক্সট প্রসেসিং, লগ পার্সিং, ফাইল ফরম্যাট ভ্যালিডেশনে এই প্যাটার্নগুলো খুব কাজে আসে।

  1. জাভা রেগেক্স দিয়ে ক্যারেক্টার রেঞ্জ ম্যাচ করা

  2. জাভা রেগেক্স দিয়ে ফিক্সড সেট অফ ক্যারেক্টার ম্যাচ করা

  3. জাভাতে রেগেক্স ব্যবহার করে ডেট ফরম্যাট ভ্যালিডেট করা (MM-DD-YYYY)

  4. জাভাতে রেগেক্স ব্যবহার করে স্ট্রিং থেকে HTML ট্যাগ এক্সট্র্যাক্ট করা