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

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


อักขระเมตา "." ในนิพจน์ทั่วไปของ java จะจับคู่อักขระใดก็ได้ (ตัวเดียว) อาจเป็นตัวอักษร ตัวเลข หรืออักขระพิเศษใดๆ

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

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

ผลลัพธ์

ป้อน Stringhello ยินดีต้อนรับเข้าสู่ tutorialspointGiven string ที่มีอักขระ 42 ตัวอย่างไร

คุณสามารถจับคู่อักขระ 3 ตัวใดก็ได้ระหว่าง a และ b โดยใช้นิพจน์ทั่วไปต่อไปนี้ -

a…b

ในทำนองเดียวกันนิพจน์ “.*” จะจับคู่กับจำนวนอักขระ n ตัว

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

โปรแกรม Java ต่อไปนี้จะอ่าน 5 สตริงจากผู้ใช้และยอมรับสตริงที่ขึ้นต้นด้วย b และลงท้ายด้วย a ด้วยอักขระจำนวนเท่าใดก็ได้ที่อยู่ระหว่างนั้น

นำเข้า java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern; คลาสสาธารณะ RegexExample { public static void main ( String args[] ) { String regex ="^b. *a$"; สแกนเนอร์ sc =สแกนเนอร์ใหม่ (System.in); System.out.println("ป้อน 5 สตริงอินพุต:"); อินพุตสตริง[] =สตริงใหม่[5]; สำหรับ (int i=0; i<5; i++) { input[i] =sc.nextLine(); } //การสร้าง Pattern object Pattern p =Pattern.compile(regex); for(int i=0; i<5;i++) {// การสร้าง Matcher object Matcher m =p.matcher (input [i]); ถ้า (m.find ()) { System.out.println (อินพุต [i]+":ยอมรับ"); } อื่น { System.out.println (อินพุต [i]+":ไม่ยอมรับ"); } } }}

ผลลัพธ์

ป้อนสตริงอินพุต 5 รายการ:barbarabooleanbarodaramrajubarbara:acceptboolean:not reservedbaroda:acceptram:not acceptraju:not reserved