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

รูปแบบแฟล็ก () วิธีการใน Java พร้อมตัวอย่าง


คลาสรูปแบบของ java.regex package เป็นการแสดงนิพจน์ทั่วไปที่คอมไพล์แล้ว

คอมไพล์() เมธอดของคลาสนี้ยอมรับค่าสตริงที่แสดงนิพจน์ทั่วไปและส่งกลับ รูปแบบ วัตถุ ต่อไปนี้เป็นลายเซ็นของวิธีนี้

การคอมไพล์รูปแบบคงที่ (String regex)

อีกรูปแบบหนึ่งของวิธีนี้ยอมรับค่าจำนวนเต็มแทนแฟล็ก ต่อไปนี้เป็นลายเซ็นของวิธีการคอมไพล์ที่มีพารามิเตอร์สองตัว

การคอมไพล์รูปแบบคงที่ (String regex, แฟล็ก int)

รูปแบบ คลาสให้ฟิลด์ต่าง ๆ แต่ละอันแทนแฟล็ก

S.No ฟิลด์และคำอธิบาย
1 CANON_EQ
จับคู่อักขระสองตัวก็ต่อเมื่อมีค่าเท่ากันตามบัญญัติ
2 CASE_INSENSITIVE
จับคู่อักขระโดยไม่คำนึงถึงตัวพิมพ์
3 ความคิดเห็น
อนุญาตช่องว่างและความคิดเห็นในรูปแบบ
4 DOTALL
เปิดใช้งานโหมด dotall ที่ไหน "." อักขระ Meta ตรงกับอักขระทั้งหมดรวมทั้งตัวสิ้นสุดบรรทัด
5 ตัวอักษร
เปิดใช้งานการแยกวิเคราะห์ตามตัวอักษรของรูปแบบ กล่าวคือ เมตาคาแรคเตอร์และเอสเควนซีเควนซ์ทั้งหมดในลำดับอินพุตจะถือเป็นอักขระตามตัวอักษร
6 MULTILINE
เปิดใช้งานโหมดหลายบรรทัด เช่น ลำดับอินพุตทั้งหมดถือเป็นบรรทัดเดียว
7 UNICODE_CASE
เปิดใช้งานการพับเคสที่รับรู้ Unicode เช่น เมื่อใช้ร่วมกับ CASE_INSENSITIVE หากคุณค้นหาอักขระ Unicode โดยใช้นิพจน์ทั่วไป อักขระ Unicode ของทั้งสองกรณีจะถูกจับคู่
8 UNICODE_CHARACTER_CLASS
เปิดใช้งานรุ่น Unicode ของคลาสอักขระที่กำหนดไว้ล่วงหน้าและคลาสอักขระ POSIX
9 UNIX_LINES
แฟล็กนี้เปิดใช้งานโหมดบรรทัด Unix

flags() เมธอดของคลาสนี้จะคืนค่าแฟล็กที่ใช้ในรูปแบบปัจจุบัน

ตัวอย่าง

<ก่อนหน้า> นำเข้า 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 ("วันเกิดไม่ถูกต้อง"); } System.out.println("แฟล็กที่ใช้:"+ pattern.flags()); }}

ผลลัพธ์

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