Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

Character Class: Union - นิพจน์ปกติ Java (Regex)

Character Class ใน Java Regex กำหนดด้วยวงเล็บสี่เหลี่ยม [] ใช้จับคู่ตัวอักษรตัวเดียวจากชุดที่ระบุ เช่น [abc] จับคู่ a, b, หรือ c

รูปแบบ Union อนุญาตให้จับคู่ตัวอักษรจากช่วงที่ระบุหลายช่วง เช่น [a-z[0-9]] จับคู่ตัวอักษรเล็ก a-z หรือ ตัวเลข 0-9

ตัวอย่าง

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

public class RegexExample1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter input text: ");
        String input = sc.nextLine();
        String regex = "[a-z[0-9]]";
        
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        int count = 0;
        while (matcher.find()) {
            count++;
        }
        System.out.println("Number characters from the ranges (a-z or 0-9): " + count);
    }
}

ผลลัพธ์

Enter input text: sample DATA 12345
Number characters from the ranges (a-z or 0-9): 11

อธิบาย

  • [a-z[0-9]] = Union ของช่วง a-z และ 0-9
  • นับตัวอักษรที่เป็นพิมพ์เล็กหรือตัวเลขในข้อความ "sample DATA 12345"
  • sample = 6 ตัวอักษร, 12345 = 5 ตัวเลข, รวม 11
  • DATA (พิมพ์ใหญ่) ไม่ถูกนับ

รูปแบบ Union อื่นๆ

  • [a-f[m-p]] - a-f หรือ m-p
  • [A-Z[a-z]] - พิมพ์ใหญ่หรือพิมพ์เล็ก (เทียบเท่า [A-Za-z])