คุณสามารถลบช่วงหนึ่งออกจากช่วงอื่นและใช้เป็นช่วงใหม่ได้ คุณสามารถทำสิ่งนี้ได้โดยใช้คลาสอักขระสองตัวแปร ได้แก่ การปฏิเสธและทางแยก
ตัวอย่างเช่น จุดตัดของช่วง [a-l] และ [^e-h] ให้อักขระ a ถึง l เท่ากับ rage ลบอักขระ [e-h]
ตัวอย่าง
<ก่อน> นำเข้า java.util.Scanner; นำเข้า java.util.regex.Matcher; นำเข้า java.util.regex.Pattern; คลาสสาธารณะ RegexExample1 { โมฆะสาธารณะหลัก (สตริง [] args) { Scanner sc =สแกนเนอร์ใหม่ (ระบบ .ใน); System.out.println("ป้อนข้อความ:"); อินพุตสตริง =sc.nextLine(); สตริง regex ="[a-l&&[^e-h]]"; //การสร้างวัตถุรูปแบบ Pattern pattern =Pattern.compile(regex); //จับคู่รูปแบบที่คอมไพล์แล้วใน String Matcher matcher =pattern.matcher(input); จำนวนเต็ม =0; ในขณะที่ (matcher.find()) { นับ ++; System.out.print(matcher.group()+" "); } System.out.println("จำนวนอักขระที่ตรงกัน:"+จำนวน); }}ผลลัพธ์
ป้อนข้อความที่ป้อน:abcdefghijklmnopqa bcd i j k l จำนวนอักขระที่ตรงกัน:8