ปริมาณโลภคือปริมาณเริ่มต้น ปริมาณที่โลภจับคู่ให้มากที่สุดจากสตริงอินพุต (การจับคู่ที่ยาวที่สุดเท่าที่จะเป็นไปได้) หากไม่จับคู่จะออกจากอักขระตัวสุดท้ายและจับคู่อีกครั้ง
ปริมาณแสดงความเป็นเจ้าของจะคล้ายกับปริมาณที่โลภ ความแตกต่างเพียงอย่างเดียวคือพยายามจับคู่อักขระให้มากที่สุดเท่าที่จะทำได้ในตอนแรก และหากการจับคู่ไม่เกิดขึ้นซึ่งแตกต่างจากปริมาณที่โลภ จะไม่ย้อนกลับ
หากคุณใส่เครื่องหมาย "+" หลังตัวระบุปริมาณมาก มันจะกลายเป็นตัวระบุปริมาณ ต่อไปนี้เป็นรายการของปริมาณความเป็นเจ้าของ -
ตัวระบุ | คำอธิบาย |
---|---|
รี*+ | ตรงกับศูนย์หรือมากกว่าที่เกิดขึ้น |
รี?+ | จับคู่ศูนย์หรือ 1 รายการ |
รี++ | จับคู่อย่างน้อยหนึ่งรายการ |
รี{n}+ | ตรงกับ n ครั้งพอดี |
re{n, m}+ | จับคู่อย่างน้อย n และมากที่สุด m ครั้ง |
ตัวอย่าง
<ก่อน> นำเข้า 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); ในขณะที่ (matcher.find ()) { System.out.print (matcher.group ()); System.out.println(); } }}ผลลัพธ์
ป้อนข้อความที่ป้อน:4567845678