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

การแทนที่นิพจน์ปกติ Java เนื้อหาที่ตรงกันทั้งหมด


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

คุณสามารถแทนที่ส่วนที่ตรงกันทั้งหมดของสตริงอินพุตด้วย str4ing อื่นโดยใช้เมธอด replaceAll() ของคลาส Matcher

เมธอดนี้ยอมรับสตริง (สตริงการแทนที่) และแทนที่การจับคู่ทั้งหมดในสตริงอินพุตด้วยและส่งคืนผลลัพธ์

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

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

ผลลัพธ์

ป้อนข้อความที่ป้อน:ข้อความตัวอย่างที่มีช่องว่างแท็บจำนวนที่ตรงกัน:4ผลลัพธ์:ข้อความตัวอย่างที่มีช่องว่างแท็บ

ในทำนองเดียวกัน คุณสามารถแทนที่การจับคู่แรกโดยใช้เมธอด replaceFirst() ของคลาส Matcher

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

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

ผลลัพธ์

ป้อนข้อความที่ป้อน:ทดสอบข้อมูล 1 2 3จำนวนที่ตรงกัน:3ผลลัพธ์:ข้อมูลการทดสอบ # 2 3