اختبار regex على الويب
الصق pattern واختبره على نص حقيقي قبل استخدامه في التحقق أو المعالجة.
حوّل النمط المختبر إلى أداة صغيرة
عندما يصبح regex جزءًا من validator أو parser أو أداة داخلية، يمكن لـ DeployPages نشر الأداة الثابتة حتى يستخدم الفريق النسخة المختبرة نفسها.
انشر أداة ثابتةلماذا تستخدم أداة اختبار regex على الويب؟
أخطاء regex تختبئ في تفاصيل صغيرة: anchor ناقص، quantifier جشع، flag منسية، أو عينة لا تشبه بيانات الإنتاج. الاختبار المباشر يجعل pattern والflags والتطابقات والنص مرئية معًا.
ملخص regex
| . | يطابق أي حرف ما عدا فاصل السطر |
| \w | يطابق الحروف أو الأرقام أو underscore |
| \d | يطابق الأرقام |
| \s | يطابق المسافات البيضاء |
| [abc] | يطابق أي حرف من القائمة |
| [^abc] | يطابق أي حرف غير موجود في القائمة |
| * | صفر أو أكثر |
| + | مرة أو أكثر |
| ? | صفر أو مرة واحدة |
| {n} | بالضبط n مرات |
| {n,} | على الأقل n مرات |
| {n,m} | بين n وm مرة |
| ^ | بداية النص |
| $ | نهاية النص |
| \b | حد كلمة |
| \B | ليس حد كلمة |
| (?=p) | Lookahead موجب |
| (?!p) | Lookahead سالب |
| g | بحث عام |
| i | تجاهل حالة الأحرف |
| m | وضع متعدد الأسطر |
| s | النقطة تطابق فواصل الأسطر |
| u | وضع Unicode |
أسئلة متقدمة
ما الفرق بين greedy وlazy matching؟
greedy يستهلك أكبر قدر ممكن من النص. lazy يضيف ? بعد quantifier ليقف المحرك عند أول تطابق صالح.
كيف أتحقق من البريد الإلكتروني بـ regex؟
استخدم regex كفحص أولي عملي، لكن لا تعتبره إثبات ملكية نهائيًا. ما زال تدفق التحقق مهمًا.
لماذا يعمل regex في لغة ويفشل في أخرى؟
محركات regex تختلف. JavaScript وPCRE وPython وJava وقواعد البيانات لا تدعم الميزات نفسها دائمًا.
هل يمكن أن يسبب regex مشكلة أداء؟
نعم. quantifiers المتداخلة والبدائل الغامضة قد تسبب backtracking مفرطًا. اختبر أسوأ الحالات قبل استخدام النمط في الطلبات.