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

จะจับคู่คำเฉพาะในสตริงโดยใช้คลาส Pattern ใน Java ได้อย่างไร


\b อักขระเมตาในนิพจน์ทั่วไป Java ตรงกับขอบเขตของคำ ดังนั้นในการค้นหาคำเฉพาะจากข้อความที่ป้อนให้ระบุคำที่ต้องการภายในขอบเขตของคำในนิพจน์ทั่วไปดังนี้ -

"\\required word\\b";

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

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

ผลลัพธ์

ป้อนอินพุต stringhello ยินดีต้อนรับสู่ TutorialspointMatch ที่พบ

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

import java.util.regex.Matcher;import java.util.regex.Pattern; class สาธารณะ MatcherExample2 { public static void main ( String args[] ) { String input ="นี่คือข้อความตัวอย่าง \n " + "นี่ เป็นบรรทัดที่สอง " + "นี่คือบรรทัดที่สาม"; สตริง regex ="\\bsecond\\b"; //การคอมไพล์นิพจน์ทั่วไป Pattern pattern =Pattern.compile(regex); //ดึงวัตถุที่จับคู่ Matcher matcher =pattern.matcher(input); if(matcher.find()) { System.out.println ("พบรายการที่ตรงกัน"); } อื่น { System.out.println ("ไม่พบรายการที่ตรงกัน"); } }}

ผลลัพธ์

พบการแข่งขัน