Clojure - นิพจน์ทั่วไป

regular expressionเป็นรูปแบบที่ใช้ในการค้นหาสตริงย่อยในข้อความ นิพจน์ทั่วไปใช้ในภาษาโปรแกรมต่างๆและใช้กันมากในภาษาโปรแกรมประเภท LISP

ต่อไปนี้เป็นตัวอย่างของนิพจน์ทั่วไป

//d+

นิพจน์ทั่วไปข้างต้นใช้เพื่อค้นหาตัวเลขในสตริง อักขระ // ใช้เพื่อให้แน่ใจว่าอักขระ 'd' และ '+' ถูกใช้เพื่อแสดงนิพจน์ทั่วไป

โดยทั่วไปนิพจน์ทั่วไปจะทำงานร่วมกับชุดของกฎต่อไปนี้

  • มีอักขระตำแหน่งพิเศษสองตัวที่ใช้เพื่อแสดงจุดเริ่มต้นและจุดสิ้นสุดของบรรทัด: คาเร็ต (∧) และเครื่องหมายดอลลาร์ ($):

  • นิพจน์ทั่วไปยังสามารถรวมตัวระบุปริมาณ เครื่องหมายบวก (+) แทนหนึ่งครั้งขึ้นไปซึ่งใช้กับองค์ประกอบก่อนหน้าของนิพจน์ เครื่องหมายดอกจัน (*) ใช้เพื่อแสดงถึงเหตุการณ์ที่เกิดขึ้นเป็นศูนย์หรือมากกว่า เครื่องหมายคำถาม (?) หมายถึงศูนย์หรือครั้งเดียว

  • metacharacter {and} ใช้เพื่อจับคู่อินสแตนซ์จำนวนเฉพาะของอักขระที่อยู่ข้างหน้า

  • ในนิพจน์ทั่วไปสัญลักษณ์จุด (.) สามารถแทนอักขระใดก็ได้ สิ่งนี้อธิบายว่าเป็นอักขระตัวแทน

  • นิพจน์ทั่วไปอาจรวมถึงคลาสอักขระ ชุดอักขระสามารถกำหนดให้เป็นลำดับอักขระง่ายๆที่อยู่ในอักขระเมตาอักขระ [และ] เช่นเดียวกับ [aeiou] สำหรับช่วงตัวอักษรหรือตัวเลขคุณสามารถใช้ตัวคั่นเส้นประเช่น [a – z] หรือ [a – mA – M] ส่วนเติมเต็มของคลาสอักขระแสดงโดยคาเร็ตนำหน้าในวงเล็บเหลี่ยมเช่นเดียวกับ [∧a – z] และแทนอักขระทั้งหมดที่นอกเหนือจากที่ระบุ

มีวิธีการต่อไปนี้สำหรับนิพจน์ทั่วไป

ซีเนียร์ วิธีการและคำอธิบาย
1 รูปแบบใหม่

ส่งคืนอินสแตนซ์ของ java.util.regex.Pattern จากนั้นจะใช้ในวิธีการอื่น ๆ สำหรับการจับคู่รูปแบบ

2 ขัดเกลา

ส่งคืนการจับคู่ regex ถัดไปถ้ามีของสตริงเป็นรูปแบบโดยใช้ java.util.regex.Matcher.find ()

3 แทนที่

ฟังก์ชันการแทนที่ใช้เพื่อแทนที่สตริงย่อยในสตริงด้วยค่าสตริงใหม่ การค้นหาสตริงย่อยทำได้โดยใช้รูปแบบ

4 แทนที่ก่อน

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