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

จะจับคู่ n จำนวนครั้งของนิพจน์โดยใช้ Java RegEx ได้อย่างไร


quantifiers ที่โลภโดย Java ช่วยให้คุณสามารถจับคู่นิพจน์ได้หลายรายการ ที่ไหน

  • Exp{n} กระตุ้นการเกิดขึ้นของนิพจน์ exp เท่ากับ n ครั้ง

  • Exp{n,} กระตุ้นให้เกิดนิพจน์ exp อย่างน้อย n ครั้ง

  • Exp{n, m} กระตุ้นให้เกิดนิพจน์ exp อย่างน้อย n และสูงสุด m ครั้ง

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

<ก่อน> นำเข้า java.util.Scanner; นำเข้า java.util.regex.Matcher; นำเข้า java.util.regex.Pattern; คลาสสาธารณะ RegexExample { โมฆะสาธารณะหลัก (สตริง args [] ) {// นิพจน์ปกติที่จะยอมรับ 5 ตัวอักษร word String regex ="\\w{5}"; สแกนเนอร์ 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 รายการ:ramarajaraghumeghamalyarama:not acceptraja:not acceptraghu:reservedmegha:reservedmalya:reserved

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

import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;คลาสสาธารณะ RegexExample { public static void main (String args[] ) {// นิพจน์ทั่วไปเพื่อให้ตรงกับ a สตริงที่ไม่ใช่คำที่มีความยาว 2 ถึง 6 String regex ="\\W{2,6}"; สแกนเนอร์ 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]); if(m.find()) { System.out.println(input[i]+"matched"); } } }}

ผลลัพธ์ 1

ป้อนสตริงอินพุต 5 รายการ:สวัสดี คุณเป็นอย่างไรบ้าง#$#%##$@%%#&&sample text#$#%matched#$@%%%#'s&matched

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

นำเข้า java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern; คลาสสาธารณะ RegexExample { สแตติกโมฆะหลัก (สตริง args [] ) { สตริง regex ="[a- zA-Z]{1,20}"; สแกนเนอร์ sc =สแกนเนอร์ใหม่ (System.in); System.out.println("ป้อนชื่อนักเรียน:"); ชื่อสตริง =sc.nextLine(); รูปแบบ p =Pattern.compile (regex); Matcher m =p.matcher (ชื่อ); if(m.matches()) { System.out.println("ชื่อเหมาะสม"); } อื่น { System.out.println ("ชื่อไม่เหมาะสม"); } }}

ผลลัพธ์

ป้อนชื่อนักเรียน:MouktikaName is suitable