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

การจับกลุ่มใน Java reg ex มีความหมายอย่างไร


นิพจน์ทั่วไปคือลำดับอักขระพิเศษที่ช่วยให้คุณจับคู่หรือค้นหาสตริงหรือชุดสตริงอื่นๆ โดยใช้ไวยากรณ์พิเศษที่จัดอยู่ในรูปแบบ

กลุ่มการจับภาพในนิพจน์ทั่วไปใช้ในการรักษาอักขระหลายตัวเป็นหน่วยเดียวที่แสดงด้วย "()" กล่าวคือ หากคุณวางรูปแบบย่อยหลายแบบไว้ใน parathesis จะถือว่าเป็นกลุ่มเดียว

ตัวอย่างเช่น รูปแบบ [0-9] ตรงกับตัวเลข 0 ถึง 9 และรูปแบบ {5} ตรงกับอักขระใดๆ หากคุณจัดกลุ่มทั้งสองเป็น ([0-9]{5}) ตรงกับตัวเลข 5 หลัก

ตัวอย่าง

<ก่อนหน้า> นำเข้า java.util.Scanner; นำเข้า java.util.regex.Matcher; นำเข้า java.util.regex.Pattern; คลาสสาธารณะ COMMENTES_Example { โมฆะสาธารณะหลัก (สตริง [] args) { Scanner sc =สแกนเนอร์ใหม่ (ระบบ .ใน); System.out.println("ป้อนชื่อของคุณ:"); ชื่อสตริง =sc.nextLine(); System.out.println("ป้อนวันเดือนปีเกิดของคุณ:"); สตริง dob =sc.nextLine(); //นิพจน์ทั่วไปที่จะยอมรับวันที่ในรูปแบบ MM-DD-YYY String regex ="^(1[0-2]|0[1-9])/ # For Month\n" + "(3[01]|[ 12][0-9]|0[1-9])/ # สำหรับวันที่\n" + "[0-9]{4}$ # สำหรับปี"; //การสร้างวัตถุรูปแบบ Pattern pattern =Pattern.compile(regex, Pattern.COMMENTS); //การสร้างวัตถุตัวจับคู่ Matcher matcher =pattern.matcher(dob); ผลบูลีน =matcher.matches(); if(ผล) { System.out.println("วันเดือนปีเกิดถูกต้อง"); } อื่น { System.out.println ("วันเกิดไม่ถูกต้อง"); } }}

ผลลัพธ์

ป้อนชื่อของคุณ:กฤษณะป้อนวันเดือนปีเกิดของคุณ:09/26/1989ที่ระบุวันเกิดถูกต้อง

ตัวอย่าง

นำเข้า java.util.regex.Matcher;import java.util.regex.Pattern;คลาสสาธารณะ GroupTest { โมฆะสาธารณะหลัก (สตริง [] args) { สตริง regex ="(.*) (\\d+) ( .*)"; String input ="นี่คือข้อความตัวอย่าง 1234 โดยมีตัวเลขอยู่ระหว่าง"; //การสร้างวัตถุรูปแบบ Pattern pattern =Pattern.compile(regex); //จับคู่รูปแบบที่คอมไพล์แล้วใน String Matcher matcher =pattern.matcher(input); ถ้า (matcher.find ()) { System.out.println ("match:"+matcher.group (0)); System.out.println("การแข่งขันกลุ่มแรก:"+matcher.group(1)); System.out.println("การแข่งขันกลุ่มที่สอง:"+matcher.group(2)); System.out.println("การแข่งขันกลุ่มที่สาม:"+matcher.group(3)); } }}

ผลลัพธ์

การจับคู่:นี่คือตัวอย่างข้อความ 1234 โดยมีตัวเลขอยู่ระหว่าง การจับคู่กลุ่มแรก:นี่คือข้อความตัวอย่าง การจับคู่กลุ่ม 123Second:การจับคู่กลุ่มที่ 4 ที่สาม:โดยมีตัวเลขอยู่ระหว่าง