[REGEX] ดักจับ Pattern ของ ISO8601 Repeating Interval

ช่วงนี้ก็ยุ่งๆครับ พยายามดัน ตัว Tool และ Paper ของงานวิจัยครับ โดยสำหรับผมทำเกี่ยวกับ BPMN พวกวันทีเวลาทั้งหลายเนี่ย มันจะถูกจัดเก็บในรูปแบบมาตรฐาน ISO8601 ครับ หลายคนอาจจะคิดว่ามันไกลตัว แต่จริงๆมันแทรกซึมได้ไปในวิถี Developer แล้วครัับ เพราะ ISO8601 ถูกบรรจุในมาตรฐานของ JSON ครับ ลองดูว่าคุ้นๆกันไหมเอ่ยยย DateTime เห็นกันบ่อยครับ แต่ที่แปลก และน่าจะถูกลืมน่าจะเป็นพวก ที่ถูกลืม เพราะ มันมีสิ่งที่น่าจะมาก่อนแล้วอย่าง CRON Format ครับ หรือชาวเพนกินเรียกว่่า CRON JOB ครับ เกริ่นนำมายาวพอสมควรเลยครับ คราวนี้มาลองดูว่าปัญหาที่ผมเจอ คือ อะไร ถ้าเป็น มาที่ตัว Repeating Interval มันมี Combination แบบไหนได้บ้าง เท่าที่ผมเข้าใจนะ มาที่พระเอกของเราแล้วครับ โดยสังเกตุได้ว่า {R[N]}/{Interval} ต้องมาคู่กันครับ ถ้าเขียน Code ดักใช้ Regular Expression ช่วย โดยดักตามกลุ่ม ดังนี้ สำหรับแบบที 1 จะได้เป็น กลุ่ม {R[N]} หรือ กลุ่ม {Date หรือ Time} หรือ กลุ่ม {Interval} โดยได้ RegEx ดังนี้ ผมได้เขียน RegEx ไว้ ดังนี้ครับ และสำหรับ Java ผมได้ทดสอบเพิ่มเติม เนื่องจากมันจะมีข้อจุกจิเล็กน้อยของแต่ละภาษาครับ ปรับให้มันซับซ้อนขึ้นตามข้อกำหนดที่ {R[N]}/{Interval} มาคู่กันครับ







