كيفية الاستخدام
- أدخل تعبيرًا نمطيًا في حقل «النمط»، من دون الشرطتين المائلتين المحيطتين به.
- فعّل الرايات التي تحتاج إليها. تعثر g (عالمي) على كل التطابقات بدلًا من الأول فقط.
- الصق النص المراد البحث فيه. تُميّز التطابقات، ويُعرض كل منها مع موضعه ومجموعات الالتقاط.
- يمكنك إدخال نص استبدال اختياري مثل $2-$1 لمعاينة نتيجة String.replace.
كيف تعمل الأداة
يختبر هذا الفاحص النمط باستخدام الكائن RegExp المضمّن في المتصفح، لذا تطابق النتائج تمامًا ما ينتجه كود JavaScript (ECMAScript) في ذلك المتصفح. تستخدم اللغات الأخرى صيغًا مختلفة للتعبيرات النمطية: فـ PCRE (PHP) ووحدة re في Python وJava و.NET تدعم ميزات لا يدعمها JavaScript، مثل محددات التكرار الجشعة (a++) والمجموعات الذرية ((?>…)) والمعدّلات المضمّنة مثل (?i) والاستدعاء التكراري، كما تختلف في تفاصيل مثل المراسي \A و\Z. اختبر النمط بلغته المستهدفة قبل الاعتماد عليه فيها. تعمل المراجعة الخلفية ((?<=…)) والمجموعات المسماة ((?<name>…)) ومحارف خصائص Unicode (\p{L} مع الراية u) في جميع المتصفحات الحالية.
من دون الراية g أو y، يُعثر على أول تطابق فقط، كما في RegExp.exec. تُدرج التطابقات ذات الطول الصفري، مثل ^ أو \b، لكن لا يتم تمييزها؛ وبعد كل تطابق منها، يتابع البحث من الحرف التالي (نقطة الرمز التالية مع الراية u)، كما تفعل String.matchAll. تظهر مجموعات الالتقاط حسب رقمها، وحسب اسمها إن كان محددًا؛ وتُعلَّم المجموعة التي لم تشارك في التطابق بأنها بلا قيمة، وهذا يختلف عن التطابق الفارغ.
تستغرق بعض الأنماط، مثل (a+)+$ على سطر طويل لا يحتوي على تطابق، وقتًا أُسّيًا للإخفاق (التراجع الكارثي). للحد من المخاطر، يبدأ البحث بعد لحظة من توقفك عن الكتابة، ولا يُبحث إلا في أول 100,000 محرف من النص، ويُجمع 1,000 تطابق كحد أقصى. ومع ذلك، قد يجعل نمط شديد التعقيد علامة التبويب غير مستجيبة لبعض الوقت؛ إذا حدث ذلك، فبسّط النمط أو قصّر النص.
أمثلة
استخراج التواريخ
يعثر النمط (\d{4})-(\d{2})-(\d{2}) مع تفعيل الراية g في النص “Due 2026-03-15, paid 2026-04-02” على تطابقين. المجموعة 1 هي السنة؛ ويحوّل الاستبدال $3.$2.$1 النص إلى “Due 15.03.2026, paid 02.04.2026”.
مجموعات مسماة لكتابة أوضح
يعرض النمط (?<key>\w+)=(?<value>[^&]*) على سلسلة الاستعلام a=1&b=two المفتاح والقيمة لكل زوج، بما يطابق ما تُرجعه match.groups.key وmatch.groups.value في JavaScript.
البحث غير الحساس لحالة الأحرف عبر الأسطر
يطابق النمط ^error:.* مع الرايات g وi وm كل سطر في السجل يبدأ بـ Error: أو ERROR: أو error:، لأن m تجعل ^ تطابق بداية كل سطر.
الأسئلة الشائعة
هل سيعمل نمطي بالطريقة نفسها في Python أو PHP أو Java؟
ليس بالضرورة. تستخدم هذه الأداة محرّك JavaScript. تتشارك الصيغ الأساسية، لكن ميزات مثل محددات التكرار الجشعة والمجموعات الذرية والرايات المضمّنة مثل (?i) وبعض تسلسلات الهروب لا تتوفر إلا في صيغ أخرى، كما يختلف سلوك بعضها. اختبر دائمًا النمط في اللغة المستهدفة.
لماذا عُثر على تطابق واحد فقط؟
الراية g (عالمي) غير مفعّلة. من دونها، يعرض JavaScript أول تطابق فقط. فعّل g للعثور عليها جميعًا.
هل أكتب الشرطتين المائلتين حول النمط؟
لا. أدخل النمط وحده، مثل \d+ بدلًا من /\d+/g، واختر الرايات باستخدام مربعات الاختيار. يظهر شكل JavaScript الحرفي أسفل النتائج لنسخه إلى الكود.
لماذا أصبحت الصفحة بطيئة مع نمطي؟
قد تُجبر محددات التكرار المتداخلة مثل (a+)+ أو (.*)* المحرّك على تجربة عدد أُسّي من المسارات عند عدم وجود تطابق. اجعل النمط أكثر تحديدًا، مثل استبدال .* بـ [^,]*، أو استخدم المراسي. يحدّ الفاحص طول النص إلى 100,000 محرف لتقليل الأثر.
الخصوصية
يُعالج النمط والنص في متصفحك فقط باستخدام محرّك JavaScript فيه. لا يُرفع أي شيء أو يُخزّن أو يُضمّن في التحليلات.