انتقل إلى محتوى الدرس

Regular Expressions with REGEXP المطابقة المتقدمة عبر REGEXP

افحص الأنماط النصية المعقدة باستخدام محرك التعابير النمطية ICU في MySQL 8 عبر REGEXP و RLIKE.
1 صفوف تعليمية
MySQL
8 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

عندما لا تكفي رموز LIKE البسيطة لوصف نمط النص المطلوب، يوفر MySQL 8 محرك التعابير النمطية المتقدم ICU الداعم لترميز Unicode الكامل عبر المعامل REGEXP أو مرادفه RLIKE.

  • مطابقة جزئية افتراضياً: خلافاً للمعامل LIKE الذي يشترط مطابقة كامل النص، ينجح المعامل REGEXP بمجرد العثور على النمط في أي موضع داخل السلسلة النصية.
  • التخيير والتكرار الكمي: يمكنك استخدام رمز البدائل | مثل '(error|timeout)' ومحددات التكرار مثل {3,5} و + و ?.

كما يوفر MySQL 8 الدالة REGEXP_LIKE(expr, pat, mode) التي تقبل المعامل 'c' لحساسية الأحرف أو 'i' لتجاهل حالة الأحرف.

SQL
-- Match logs containing error or fatal, and filter with NOT REGEXP
SELECT log_id, service_name, message
FROM system_logs
WHERE message REGEXP 'error|timeout|fatal'
  AND service_name NOT REGEXP 'test|staging';