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

นิพจน์ทั่วไปใน Java คืออะไร?


นิพจน์ทั่วไปคือสตริงของอักขระที่กำหนด/สร้างรูปแบบเพื่อค้นหาข้อความที่ป้อน นิพจน์ทั่วไปอาจมีอักขระได้ตั้งแต่หนึ่งตัวขึ้นไป โดยใช้นิพจน์ทั่วไป คุณสามารถค้นหาหรือแทนที่สตริงได้

Java จัดเตรียมแพ็คเกจ java.util.regex สำหรับการจับคู่รูปแบบกับนิพจน์ทั่วไป แพ็คเกจนี้มีสามคลาส -

  • คลาสรูปแบบ: รูปแบบ คลาสของแพ็คเกจนี้เป็นการแสดงนิพจน์ทั่วไปที่คอมไพล์แล้ว ในการจับคู่นิพจน์ทั่วไปกับสตริง คลาสนี้จะมีสองวิธีคือ:
  • คอมไพล์(): เมธอดนี้ยอมรับสตริงที่แสดงนิพจน์ทั่วไปและส่งคืนอ็อบเจ็กต์ของอ็อบเจกต์ Pattern
  • ตัวจับคู่ (): เมธอดนี้ยอมรับค่าสตริงและสร้างอ็อบเจ็กต์ที่จับคู่ซึ่งตรงกับสตริงที่กำหนดกับรูปแบบที่แสดงโดยอ็อบเจ็กต์รูปแบบปัจจุบัน
  • ตัวจับคู่ คลาสของแพ็คเกจ java.util.regex เป็นเอ็นจิ้นที่ดำเนินการจับคู่ ในการหาค่าที่ตรงกัน คุณต้องใช้สองวิธีของคลาสนี้:
  • find(): เมธอดนี้คืนค่า จริง หากการดำเนินการจับคู่ที่แสดงโดยอ็อบเจ็กต์ปัจจุบันสำเร็จ มิฉะนั้นจะส่งกลับค่าเท็จ
  • group() :เมธอดนี้ยอมรับค่าจำนวนเต็มที่แสดงถึงกลุ่มใดกลุ่มหนึ่ง และส่งกลับลำดับที่กลุ่มที่ระบุดักจับในการดำเนินการจับคู่
  • PaternSyntaxException − วัตถุ PatternSyntaxException เป็นข้อยกเว้นที่ไม่ได้ตรวจสอบ ซึ่งบ่งชี้ข้อผิดพลาดทางไวยากรณ์ในรูปแบบนิพจน์ทั่วไป

ตัวอย่าง

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

ผลลัพธ์

ป้อน input string:whÿ do we fallResult:w do we fall

ตัวอย่าง

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

ผลลัพธ์

ป้อนข้อความ:สวัสดี คุณยินดีต้อนรับเข้าสู่ Tutorialspoint263142