นิพจน์ 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 ค่า:(หลัก) อยู่ตรงกลาง