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