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

Matcher hasAnchoringBounds() วิธีการใน Java พร้อม Examples


คลาส java.util.regex.Matcher แสดงถึงเอ็นจิ้นที่ดำเนินการจับคู่ต่างๆ ไม่มีตัวสร้างสำหรับคลาสนี้ คุณสามารถสร้าง/รับวัตถุของคลาสนี้โดยใช้เมธอดmatch() ของคลาส java.util.regex.Pattern

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

มีAnchoringBounds() เมธอดของคลาส (Matcher) นี้ตรวจสอบว่าตัวจับคู่ปัจจุบันใช้ขอบเขตการทอดสมอหรือไม่ หากเป็นเช่นนั้น มันจะคืนค่าเป็น จริง อย่างอื่น คืนค่าเป็น เท็จ

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

นำเข้า java.util.regex.Matcher;import java.util.regex.Pattern;คลาสสาธารณะ HasAnchoringBoundsExample { โมฆะคงที่สาธารณะหลัก (สตริง [] args) { สตริง regex ="(.*) (\\d+) ( .*)"; อินพุตสตริง ="นี่คือข้อความตัวอย่าง 1234 โดยมีตัวเลขอยู่ระหว่าง " + "\n นี่คือบรรทัดที่สองในข้อความ " + "\n นี่คือบรรทัดที่สามในข้อความ"; //การสร้างวัตถุรูปแบบ Pattern pattern =Pattern.compile(regex); //การสร้าง Matcher วัตถุ Matcher matcher =pattern.matcher (อินพุต); //ตรวจสอบการยึดขอบเขตบูลีนบูล =matcher.hasAnchoringBounds(); // กำลังตรวจสอบการจับคู่ if (bool) { System.out.println ("ตัวจับคู่ปัจจุบันใช้ขอบเขตการทอดสมอ"); } อื่น { System.out.println ("ตัวจับคู่ปัจจุบันใช้ขอบเขตที่ไม่ยึด"); } if(matcher.matches()) { System.out.println("พบรายการที่ตรงกัน"); } อื่น { System.out.println ("ไม่พบรายการที่ตรงกัน"); } }}

ผลลัพธ์

ตัวจับคู่ปัจจุบันใช้การทอดสมอ boundsMatch ไม่พบ

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

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

ผลลัพธ์

ป้อนอินพุต stringhello ตัวอย่าง 2คอมไพล์นิพจน์ทั่วไป:.*\d+.*Current matcher ใช้ non-anchoing boundsGiven String มีตัวเลข