تخطي إلى المحتوى الرئيسي
FreeOnlineTools Go
العربية
مرجع

ورقة مرجع التعابير النمطية: البناء والأعلام والأنماط

بواسطة FreeOnlineTools Team · تم التحديث في 2026-08-28

إجابة سريعة

. = أي حرف، * = صفر+، + = واحد+، ? = اختياري، [] = فئة، () = مجموعة، ^ = بداية، $ = نهاية. استخدم أداة اختبار التعابير النمطية المجانية للمطابقة في الوقت الفعلي في متصفحك.

مقدمة

التعابير النمطية تستخدم أحرف خاصة للأنماط: . (أي حرف)، * (صفر أو أكثر)، + (واحد أو أكثر)، ? (اختياري)، [] (فئة أحرف)، () (مجموعة)، | (أو). المراسي: ^ (بداية)، $ (نهاية). الأعلام: g (عالمي)، i (غير حساس)، m (متعدد الأسطر).

خطوة بخطوة

  1. فئات الأحرف — تطابق مجموعة من الأحرف

    [abc] يطابق a أو b أو c. [^abc] يطابق أي شيء باستثناء a، b، c. [a-z] يطابق أي حرف صغير. الفئات المحددة مسبقًا: \d = [0-9]، \D = غير أرقام، \w = [A-Za-z0-9_]، \W = غير كلمة، \s = مسافة بيضاء، \S = مسافة غير بيضاء، . = أي حرف باستثناء السطر الجديد (استخدم علامة s لتضمين السطر الجديد).

  2. محددات الكمية - كم مرة يجب تكرارها

    * = 0 أو أكثر. + = 1 أو أكثر. ؟ = 0 أو 1. {ن} = بالضبط ن. {ن،} = على الأقل ن. {ن،م} = بين ن و م. يضيف ؟ للمطابقة البطيئة (على سبيل المثال، *؟ يطابق أقل عدد ممكن). الجشع هو الوضع الافتراضي ويمكن أن يسبب تراجعًا كارثيًا في الأنماط المتداخلة.

  3. المراسي والحدود - أين تتطابق

    ^ يطابق بداية السلسلة (أو السطر الذي يحمل علامة m). $ يطابق النهاية. \b يطابق حدود الكلمة (بين \w و\W). ‎\B يتطابق مع حدود غير الكلمات. المراسي ذات عرض صفري — فهي تختبر الموضع دون استهلاك الأحرف.

  4. المجموعات والتناوب

    (abc) هي مجموعة التقاط؛ استخدم 1 دولارًا و 2 دولارًا في الاستبدالات. (?:abc) هي مجموعة غير ملتقطة. (?=abc) هو نظرة للأمام (يؤكد ما يلي). (؟!abc) هو نظرة مستقبلية سلبية. (؟<=abc) هو مظهر خلفي (ES2018+). a|b هو التناوب (a أو b).

  5. الأعلام — تغيير سلوك المطابقة

    g = عالمي (ابحث عن كافة التطابقات، وليس الأولى فقط). i = حساس لحالة الأحرف. م = متعدد الأسطر (^ و$ يتطابقان مع حدود الخط). s = dotAll (. يطابق السطر الجديد). u = unicode (تعامل مع النمط على أنه نقاط ترميز Unicode؛ وهي ضرورية للرموز التعبيرية والأحرف النجمية). y = مثبت (يتطابق مع lastIndex فقط).

أمثلة

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

مدخل: Pattern: /^[^\s@]+@[^\s@]+\.[^\s@]+$/

الإخراج: يطابق "user@example.com" و"a.b@sub.domain.co" ولكن ليس "plainaaddress" أو "@no-user.com"

استخرج جميع رموز الألوان السداسية من CSS

مدخل: Pattern: /#[0-9a-fA-F]{3,8}\b/g

الإخراج: In 'color: #fff; background: #1a2b3c4d' finds ['#fff', '#1a2b3c4d']

التحقق من صحة تاريخ ISO 8601 (YYYY-MM-DD)

مدخل: Pattern: /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/

الإخراج: يطابق "2026-08-28" لكنه يرفض "2026-13-01" و"2026-02-31"

استبدل الأرقام بـ # باستخدام مجموعة الالتقاط

مدخل: تم استبدال "تم شحن الطلب 42" بـ /(\d+)/g →'#$1'

الإخراج: "تم شحن الطلب رقم 42"

المشاكل الشائعة

  • تتطابق محددات الكمية الجشعة كثيرًا: '<.*>' في '<a><b>' يتطابق مع السلسلة بأكملها '<a><b>' بدلاً من '<a>'. استخدم '<.*?>' (كسول) لمطابقة '<a>' أولاً.
  • التراجع الكارثي: محددات الكمية المتداخلة مثل (a+)+b عند الإدخال "aaaaaaaaaaaaaaaa!" يمكن أن يستغرق وقتا أسيا. أعد كتابة النموذج أو استخدم المجموعات الذرية/محددات الملكية عندما تكون مدعومة.
  • نسيان علامة u لـ Unicode: /^.$/ يتطابق مع وحدة رمز واحدة، لذا تفشل الرموز التعبيرية مثل '😀' (وحدتي رمز) بدون علامة u. أضف u دائمًا عند مطابقة الأحرف النجمية.
  • الخلط بين \b (حدود الكلمة) و\s (مسافة بيضاء): \b يطابق بين كلمة وحرف غير كلمة، لذلك يعمل في بداية/نهاية السلسلة أيضًا. \s يطابق فقط أحرف المسافات البيضاء الفعلية.

نصائح

  • اختبر دائمًا التعبير العادي مقابل العينات المطابقة وغير المتطابقة في جهاز اختبار Regex الخاص بنا قبل تضمينه في رمز الإنتاج - من السهل تفويت حالات الحافة.
  • تفضيل فئات الأحرف [a-z] على التناوب (a|b|...|z) للأحرف المفردة - تكون الفئات أسرع وأكثر وضوحًا.
  • استخدم مجموعات غير ملتقطة (؟:...) عندما لا تحتاج إلى القيمة الملتقطة — الالتقاط له تكلفة أداء صغيرة ويؤدي إلى تشويش مصفوفة النتائج.
  • قم بتجميع التعبير العادي مرة واحدة باستخدام RegExp()‎ الجديد أو النطاق الحرفي في الوحدة النمطية، وليس داخل حلقة فعالة - حيث تؤدي إعادة ترجمة نفس النمط في كل تكرار إلى إهدار وحدة المعالجة المركزية.

الأدوات ذات الصلة

أدلة ذات صلة

مراجع