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

Java Regular expressions ตัวดำเนินการตรรกะ


นิพจน์ Java Regular รองรับ 3 ตัวดำเนินการเชิงตรรกะ -

  • XY:X ตามด้วย Y

  • X|Y:X หรือ Y

  • (X):จับกลุ่ม

XY:X ตามด้วย Y

จับคู่อักขระสองตัวที่ต่อเนื่องกันเพียงตัวเดียว

ตัวอย่าง

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

ผลลัพธ์ 1

ป้อนข้อความที่ป้อน:ตัวอย่าง textMatch เกิดขึ้น

ผลลัพธ์ 2

ป้อนข้อความที่ป้อน:สวัสดี คุณเป็นอย่างไรไม่จับคู่

X|Y

ตรงกับนิพจน์/อักขระสองตัวที่อยู่ล้อมรอบ "|"

ตัวอย่าง

นำเข้า java.util.regex.Matcher;import java.util.regex.Pattern; RegexExample คลาสสาธารณะ { public static void main ( String args[] ) { String regex ="สวัสดี | ยินดีต้อนรับ"; String input ="สวัสดี ยินดีต้อนรับเข้าสู่ Tutorialspoint"; รูปแบบรูปแบบ =Pattern.compile (regex); ตัวจับคู่ตัวจับคู่ =pattern.matcher (อินพุต); จำนวน int =0; ในขณะที่ (matcher.find ()) { นับ ++; } System.out.println("จำนวนที่ตรงกัน:"+นับ); }}

ผลลัพธ์

จำนวนการแข่งขัน:2

(X):จับกลุ่ม

กลุ่มการจับช่วยให้คุณสามารถปฏิบัติต่ออักขระหลายตัวเป็นหน่วยเดียว คุณเพียงแค่ต้องวางอักขระเหล่านี้ไว้ในชุดวงเล็บ

ตัวอย่าง

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

ผลลัพธ์

ป้อนข้อมูลตัวอย่างข้อความที่มี 1234 (หลัก) อยู่ในค่ากลางFound:ข้อมูลตัวอย่างที่มี 1234 (หลัก) อยู่ตรงกลางค่า:ข้อมูลตัวอย่างที่มีค่า 123Found:4Found ค่า:(หลัก) อยู่ตรงกลาง