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

quantifiers ของ Java Regular expressions


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

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

หากคุณใส่เครื่องหมาย "+" หลังตัวระบุปริมาณมาก มันจะกลายเป็นตัวระบุปริมาณ ต่อไปนี้เป็นรายการของปริมาณความเป็นเจ้าของ -

ตัวระบุ คำอธิบาย
รี*+ ตรงกับศูนย์หรือมากกว่าที่เกิดขึ้น
รี?+ จับคู่ศูนย์หรือ 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