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

ปริมาณโลภนิพจน์ Java Regular ใน java


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

ตัวระบุ คำอธิบาย
รี* ตรงกับศูนย์หรือมากกว่าที่เกิดขึ้น
หรือ? จับคู่ศูนย์หรือ 1 รายการ
รี+ จับคู่อย่างน้อยหนึ่งรายการ
รี{n} ตรงกับ n ครั้งพอดี
re{n, } จับคู่อย่างน้อย n ครั้ง
re{n, m} จับคู่อย่างน้อย n และมากที่สุด m ครั้ง

ตัวอย่าง

ในตัวอย่าง Java ต่อไปนี้ เรากำลังพยายามจับคู่ตัวเลขตั้งแต่ 1 หลักขึ้นไป สตริงอินพุตของเราคือ 45545 แม้ว่าค่า 4, 45, 455 ฯลฯ… จะเข้าเงื่อนไขได้ เนื่องจากเราใช้ตัวระบุที่โลภซึ่งตรงกับค่าที่ยาวที่สุด

<ก่อน> นำเข้า java.util.Scanner; นำเข้า java.util.regex.Matcher; นำเข้า java.util.regex.Pattern; การทดสอบคลาสสาธารณะ { โมฆะสาธารณะหลัก (สตริง [] args) { Scanner sc =สแกนเนอร์ใหม่ (ระบบ .ใน); System.out.println("ป้อนข้อความ:"); อินพุตสตริง =sc.nextLine(); สตริง regex ="[0-9]+"; //การสร้างวัตถุรูปแบบ Pattern pattern =Pattern.compile(regex); //จับคู่รูปแบบที่คอมไพล์แล้วใน String Matcher matcher =pattern.matcher(input); System.out.println(“”ข้อความที่ตรงกัน:); ในขณะที่ (matcher.find ()) { System.out.println (matcher.group ()); } }}

ผลลัพธ์

ป้อนข้อความที่ป้อน:ข้อความที่ตรงกัน:45545