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

التعبيرات العادية (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 المبسط)

التحقق من صحة رسائل البريد الإلكتروني القياسية الحديثة ذات امتدادات النطاق الصالحة:
^[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)

يطابق أرقام الهواتف الدولية القياسية التي تبدأ بعلامة الجمع:
^\+[1-9]\d{1,14}$
أمان ReDoS: منع التراجع الكارثي

يعد رفض خدمة التعبير العادي (ReDoS) ثغرة أمنية خطيرة. عندما يستخدم التعبير العادي محددات كمية غامضة ومتداخلة مثل:
(a+)+$
تقييم مدخلات غير متطابقة مثل "aaaaaaaaaaaaaaaaaaaaaaaaaa!" يتسبب في قيام محرك التعبير العادي NFA باختبار الملايين من التباديل. في الواجهة الخلفية للإنتاج Node.js أو Python، يؤدي هذا إلى حظر حلقة الحدث وتأمين وحدة المعالجة المركزية بنسبة 100%.
قواعد منع ReDoS:
- لا تقم أبدًا بدمج محددات الكمية الجشعة داخل محددات كمية أخرى.
- استخدم محددات كمية ملكية أو مجموعات ذرية إذا كان يدعمها وقت التشغيل الخاص بك.
- اختبر أنماطك مقابل السلاسل السلبية باستخدام لدينا مختبر التعابير النمطية (Regex Tester).

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