Regular Expression (ย่อ Regex/RegExp) เป็นภาษารูปแบบข้อความที่อธิบายและจับคู่กับชุดของสตริงที่สอดคล้องกับกฎไวยากรณ์บางอย่างด้วยสตริงเดียว ประวัติสามารถย้อนไปถึงแบบจำลองทางคณิตศาสตร์ของเซลล์ประสาทที่เสนอโดยนักประสาทวิทยา Warren McCulloch และนักคณิตศาสตร์ Walter Pitts ในทศวรรษ 1950 ต่อมานักคณิตศาสตร์ Stephen Kleene ในปี 1956 ได้เสนอคำอธิบายพีชคณิตของ「เซตปกติ」ตามพื้นฐานนั้น บิดาแห่ง Unix Ken Thompson ในปลายทศวรรษ 1960 ได้นำ Regular Expression ไปใช้งานครั้งแรกในเอดิเตอร์ QED ตั้งแต่นั้นมา Regular Expression กลายเป็นฟังก์ชันหลักของเครื่องมือชุด Unix (grep, sed, awk, vi)
ในภาษาโปรแกรมสมัยใหม่ Regular Expression เกือบจะเป็นความสามารถมาตรฐาน — RegExp ของ JavaScript, โมดูล re ของ Python, java.util.regex ของ Java, คลาส Regex ของ .NET, แพ็กเกจ regexp ของ Go ล้วนให้การสนับสนุน regex Regular Expression ถูกใช้อย่างแพร่หลายในสถานการณ์ต่างๆ เช่น การตรวจสอบฟอร์ม (อีเมล/เบอร์มือถือ/บัตรประชาชน) การค้นหาและแทนที่ข้อความ (ค้นหาและแทนที่ในตัวแก้ไข) การวิเคราะห์ล็อก (แยกล็อก ERROR) โปรแกรมรวบรวมข้อมูลเว็บ (แยกเนื้อหา HTML) การทำความสะอาดข้อมูล (ETL) การจับคู่เส้นทาง การกรองข้อมูลนำเข้าและการป้องกันความปลอดภัย (กฎ WAF) ฯลฯ
แนวคิดหลักของ Regular Expression ได้แก่: คลาสอักขระ (\d ตัวเลข, \w อักขระคำ, \s ช่องว่าง) ควอนติไฟเออร์ (* ศูนย์หรือมากกว่า, + หนึ่งหรือมากกว่า, ? ศูนย์หรือหนึ่ง, {n,m} จำนวนที่ระบุ) จุดยึด (^ จุดเริ่มต้น, $ จุดสิ้นสุด, \b ขอบเขตคำ) กลุ่ม ((...) กลุ่มจับ, (?:...) กลุ่มไม่จับ, (?<name>...) กลุ่มที่ตั้งชื่อ) การแตกแขนง (|) เซตอักขระ ([a-z]) การมองรอบ ((?=...) การมองข้างหน้าเชิงบวก, (?!) การมองข้างหน้าเชิงลบ) ฯลฯ การเชี่ยวชาญ regex สามารถเพิ่มประสิทธิภาพการประมวลผลข้อความได้อย่างมาก แต่ก็ต้องระมัดระวังในการป้องกันกับดักประสิทธิภาพเช่น ReDoS