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

วิธีจับคู่ช่วงของอักขระโดยใช้ Java regex


หากต้องการจับคู่ช่วงของอักขระ เช่น เพื่อให้ตรงกับอักขระทั้งหมดระหว่างอักขระสองตัวที่ระบุในลำดับ คุณสามารถใช้คลาสอักขระเป็น

[a-z]
  • นิพจน์ “[a-zA-Z] ” ยอมรับอักษรภาษาอังกฤษใด ๆ

  • นิพจน์ “[0-9&&[^35]] ” ยอมรับตัวเลขยกเว้น 3 และ 5

ตัวอย่างที่ 1

<ก่อน> นำเข้า java.util.Scanner; นำเข้า java.util.regex.Matcher; นำเข้า java.util.regex.Pattern; ตัวอย่างคลาสสาธารณะ { โมฆะสาธารณะสาธารณะหลัก (สตริง args []) {// การอ่านสตริงจากระบบของผู้ใช้ .out.println("ป้อนสตริง"); สแกนเนอร์ sc =สแกนเนอร์ใหม่ (System.in); อินพุตสตริง =sc.nextLine(); สตริง regex ="^[a-zA-Z0-9]*$"; //การคอมไพล์นิพจน์ทั่วไป Pattern pattern =Pattern.compile(regex); //ดึงวัตถุที่จับคู่ Matcher matcher =pattern.matcher (อินพุต); if (matcher.matches ()) { System.out.println ("การจับคู่เกิดขึ้น"); } อื่น { System.out.println ("ไม่ตรงกัน"); } }}

ผลลัพธ์ 1

ป้อน StringHelloMatch เกิดขึ้น

ผลลัพธ์ 2

ป้อน Stringsample#Match ไม่เกิดขึ้น

ตัวอย่างที่ 2

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

ผลลัพธ์

ป้อนสตริง 111223333555689Occurrences :8