ورقة الغش في Regex الحديثة: الأنماط العملية ودليل بناء الجملة والتحقق من الصحة

توقف عن كتابة التعبير العادي الهش من الصفر. يوفر هذا الدليل العملي أنماط تعبير عادية تم اختبارها لمهام التطوير اليومية إلى جانب التحليلات المرئية للرؤوس الأمامية ومجموعات الالتقاط وفئات الشخصيات.

Modern developer code editor displaying highlighted regular expression syntax tokens, capture groups, and lookaheads

مرجع صياغة التعبير العادي والأحرف الأولية

Comprehensive regular expression token reference chart breaking down anchors, character classes, and quantifiers

التعبيرات العادية (regex) هي أوصاف نمطية رسمية تستخدمها محركات البحث والمترجمون وتطبيقات الويب للتحقق من صحة بيانات السلسلة واستخراجها واستبدالها.

؟
حرف تعريفمعنىعملي مثالالمطابقات
^ابدأ من السلسلة / السطر^httpsالسلاسل التي تبدأ بـ "https"
$ نهاية السلسلة / السطر\.png$السلاسل التي تنتهي بـ ".png"
.أي حرف مفرد (باستثناء السطر الجديد)c.t"cat"، "مهد"، "c9t"
\d أي رقم (يعادل [0-9])\d{4} "2026"
\wكلمة الحرف (الأبجدية الرقمية + _)\w+"user _123"
\s أي مسافة بيضاء (مسافة، علامة تبويب، سطر جديد)\s+" "
+ واحد أو أكثر مرات التواجدa+"a"، "aaa"
*صفر أو أكثر مرات التواجدa*""، "a"، "aaa"
صفر أو تكرار واحد (اختياري)https?"http"، "https"
{n,mبين n وm التكرارات\d{2,4}"99"، "1999"

أنماط التعبير العادي التي تم اختبارها للنسخ واللصق لتطبيقات الويب

1. التحقق من صحة عنوان البريد الإلكتروني (RFC 5322 المبسط)

Email and password validation pattern breakdown showing lookahead assertions and character set boundaries

التحقق من صحة رسائل البريد الإلكتروني القياسية الحديثة ذات امتدادات النطاق الصالحة:

^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$

2. التحقق من صحة كلمة المرور القوية

يتطلب أكثر من 8 أحرف، وحرف كبير واحد، وحرف صغير واحد، ورقم واحد، ورمز خاص واحد على الأقل:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

3. رموز الألوان الست عشرية

يطابق الرموز السداسية المكونة من 3 أرقام و6 أرقام و8 أرقام (مع قناة ألفا):

^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$

4. أرقام الهاتف الدولية (تنسيق E.164)

International phone number and hex color code parsing diagrams showing optional country prefixes and digit groupings

يطابق أرقام الهواتف الدولية القياسية التي تبدأ بعلامة الجمع:

^\+[1-9]\d{1,14}$

أمان ReDoS: منع التراجع الكارثي

Catastrophic backtracking execution graph showing exponential state evaluation loops in vulnerable regex patterns

يعد رفض خدمة التعبير العادي (ReDoS) ثغرة أمنية خطيرة. عندما يستخدم التعبير العادي محددات كمية غامضة ومتداخلة مثل:

(a+)+$

تقييم مدخلات غير متطابقة مثل "aaaaaaaaaaaaaaaaaaaaaaaaaa!" يتسبب في قيام محرك التعبير العادي NFA باختبار الملايين من التباديل. في الواجهة الخلفية للإنتاج Node.js أو Python، يؤدي هذا إلى حظر حلقة الحدث وتأمين وحدة المعالجة المركزية بنسبة 100%.

قواعد منع ReDoS:

  1. لا تقم أبدًا بدمج محددات الكمية الجشعة داخل محددات كمية أخرى.
  2. استخدم محددات كمية ملكية أو مجموعات ذرية إذا كان يدعمها وقت التشغيل الخاص بك.
  3. اختبر أنماطك مقابل السلاسل السلبية باستخدام لدينا مختبر التعابير النمطية (Regex Tester).

Atomic grouping and possessive quantifier benchmarks demonstrating ReDoS-safe pattern performance optimization

الأدلة المصاحبة الموصى بها

استكشف البرامج التعليمية والأدوات المساعدة التكميلية من مجموعة المواضيع هذه لتحسين سير عملك الرقمي:

Base64 مقابل Binary: حجم الملف الزائد، وزمن وصول الشبكة، وأداء الويببرنامج تعليمي عملي خطوة بخطوة مع معايير تم التحقق منها وداخل المتصفح سير العمل.الدليل الكامل لرموز QR: تصحيح الأخطاء وسعة البياناتبرنامج تعليمي عملي خطوة بخطوة مع معايير تم التحقق منها وداخل المتصفح سير العمل.تنسيق بناء جملة JSON والتحقق من صحته وتصحيحه في متصفحكبرنامج تعليمي عملي خطوة بخطوة مع معايير تم التحقق منها وداخل المتصفح سير العمل.دروس متقدمة لتغيير حجم الصورة: كيفية تغيير حجم وحدات البكسل دون تشويهسير عمل تكميلي متعدد التنسيقات يربط بين البيانات والوسائط ذات الصلة الأدوات.
الأداة الموصى بها: اختبار Regexتنفيذ سير العمل هذا مباشرة في متصفحك بدون أي تحميلات على الخادم وخصوصية 100% من جانب العميل.
مختبر التعابير النمطية (Regex Tester)
مختبر التعابير النمطية (Regex Tester)

الأسئلة الشائعة

اعثر على إجابات سريعة وموثوقة للأسئلة الشائعة المتعلقة بهذا الموضوع.

ما هو التراجع الكارثي في ​​التعبيرات العادية (ReDoS)؟

يحدث التراجع الكارثي عندما تجبر محددات الكمية المتداخلة (على سبيل المثال (a+)+$) محرك التعبير العادي على تقييم فروع المجموعة الأسية عند تقييم سلسلة غير صالحة، مما يتسبب في ارتفاعات وحدة المعالجة المركزية والخوادم المعلقة.

لماذا يجب عليك اختبار التعبيرات العادية من جانب العميل بدلاً من الخوادم السحابية؟

يؤدي اختبار أنماط التعبير العادي باستخدام بيانات عينة الإنتاج الحقيقية (مثل رسائل البريد الإلكتروني أو العناوين أو الرموز المميزة للمستخدم) إلى كشف بيانات المستخدم السرية إذا تم إرسالها إلى خوادم ويب تابعة لجهات خارجية. تعمل أداة regex الخاصة بـ ToolDolfen بنسبة 100% محليًا في متصفحك.

ما الفرق بين النظرة الأمامية الإيجابية (؟=...) والمجموعات غير الجذابة (؟:...)؟

يؤكد البحث الأمامي الإيجابي أن ما يلي يطابق النمط دون استهلاك الأحرف أو تضمينها في سلسلة المطابقة. تقوم المجموعة غير الملتقطة بتجميع التعبيرات الفرعية لمحددات الكمية دون حفظها في أرقام فهرس الذاكرة.

Bilal Ahmad