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

วิธีจับคู่ตัวอักษรจากสตริงที่กำหนดรวมถึงตัวพิมพ์เล็ก/ใหญ่ด้วย Java regex

แพ็กเกจ java.util.regex ของ Java มีคลาสต่างๆ สำหรับค้นหารูปแบบเฉพาะในลำดับตัวอักษร คลาส Pattern ของแพ็กเกจนี้เป็นการแสดงรูปแบบที่คอมไพล์แล้วของนิพจน์ปกติ

เพื่อจับคู่ตัวอักษรเฉพาะจากสตริงอินพุตที่กำหนด:

  • รับสตริงอินพุต

  • เมธอด compile() ของคลาสนี้รับค่าสตริงที่แทนนิพจน์ปกติและค่าจำนวนเต็มที่แทนแฟล็ก (flag) ส่งคืนออบเจ็กต์ Pattern คอมไพล์นิพจน์ปกติโดยส่งผ่าน:

    • ตัวจับคูรรูปแบบ “[ ]” พร้อมตัวอักษรที่ต้องการ เช่น “[t]”

    • แฟล็ก CASE_INSENSITIVE เพื่อละเลยการแยกตัวพิมพ์เล็ก/ใหญ่

  • เมธอด matcher() ของคลาส Pattern รับสตริงอินพุตและส่งคืนออบเจ็กต์ Matcher สร้าง/ดึงออบเจ็กต์ matcher โดยใช้เมธอดนี้

  • find() - ใช้เมธอด find() ของ Matcher เพื่อค้นหาการจับคู่

ตัวอย่าง

import java.util.Scanner; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
public class CompileExample { 
    public static void main( String args[] ) { 
        // อ่านค่าสตริง 
        Scanner sc = new Scanner(System.in); 
        System.out.println("Enter input string"); 
        String input = sc.nextLine(); 
        // นิพจน์ปกติเพื่อค้นหาตัวเลข 
        String regex = "[t]"; 
        // คอมไพล์นิพจน์ปกติพร้อมแฟล็ก CASE_INSENSITIVE 
        Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); 
        // ดึงออบเจ็กต์ matcher 
        Matcher matcher = pattern.matcher(input); 
        int count = 0; 
        while(matcher.find()) { 
            count++; 
        } 
        System.out.println("Number of matches: " + count); 
    } 
}

ผลลัพธ์

Enter input string Tutorialspoint 
Number of matches: 3