اختبار التعابير النمطية (Regex)

يشغّل المختبر النمط في محرك RegExp الخاص بـ JavaScript في متصفحك، فتطابق النتائج ما يراه كود JavaScript الخاص بك. اكتب النمط دون شرطات مائلة مثل \d{3}-\d{4}، واستخدم الراية g لإيجاد كل التطابقات.

التطابقات المظللة

هل حُلّت مشكلتك؟
فضّلنا على Google

طريقة الاستخدام

  1. اكتب النمط دون الشرطتين المائلتين حوله، مثلًا \d{3}-\d{4}.
  2. فعّل الأعلام أو عطّلها. العلم g يجد كل التطابقات، وبدونه يظهر أول تطابق فقط.
  3. الصق النص الذي تريد البحث فيه. تُظلَّل التطابقات أثناء الكتابة، ويعرض الجدول كل تطابق مع مجموعات الالتقاط الخاصة به.

طريقة الحساب

يُترجَم النمط بمحرك RegExp المدمج في متصفحك، فتكون الصياغة والسلوك مطابقين تمامًا لما يراه كود JavaScript الخاص بك. أما الصيغ الأخرى مثل PCRE وPython و.NET فتختلف في مواضع، كدعم lookbehind في المحركات القديمة، والمحددات الكمية الاستحواذية التي لا توجد في JavaScript.

مع العلم g تستدعي الأداة exec مرارًا وتجمع حتى 1,000 تطابق. وإذا كان التطابق فارغًا، كما في a* أو lookahead، يتقدم موضع البحث حرفًا واحدًا كي تنتهي الحلقة دائمًا.

تجري المطابقة في عامل خلفي (worker). إذا استغرق النمط أكثر من 1.5 ثانية، بسبب التراجع الكارثي مثل (a+)+$، يُوقف العامل وتظهر رسالة انتهاء المهلة بدل أن تتجمد الصفحة.

مرجع سريع للتعابير النمطية

الرمزالمعنى
.أي حرف عدا فاصل السطر (أي حرف مع العلم s)
\d \w \sرقم، حرف كلمة (حرف أو رقم أو شرطة سفلية)، مسافة بيضاء
\D \W \Sعكس \d و\w و\s
[abc] [^abc] [a-z]واحد من a أو b أو c؛ أي شيء عدا a وb وc؛ نطاق
^ $بداية النص ونهايته (بداية كل سطر ونهايته مع العلم m)
\bحد الكلمة
* + ?صفر أو أكثر، واحد أو أكثر، صفر أو واحد
{3} {2,5} {2,}3 بالضبط، من 2 إلى 5، 2 أو أكثر
*? +?صيغ كسولة تطابق أقل قدر ممكن
(abc) (?:abc)مجموعة التقاط، مجموعة بلا التقاط
(?<name>abc)مجموعة التقاط مسماة
a|ba أو b
(?=x) (?!x)يليه x، لا يليه x
(?<=x) (?<!x)يسبقه x، لا يسبقه x
\1 \k<name>مرجع خلفي إلى المجموعة 1 أو إلى مجموعة مسماة

الأعلام

العلمالتأثير
gعام: يجد كل التطابقات بدل الأول فقط
iتجاهل حالة الأحرف
mمتعدد الأسطر: ^ و$ يطابقان عند فواصل الأسطر
sالنقطة للكل: النقطة . تطابق فواصل الأسطر أيضًا
uيونيكود: يعامل الأزواج البديلة حرفًا واحدًا ويفعّل \p{...}
yلاصق: يجب أن يبدأ كل تطابق حيث انتهى السابق تمامًا

أسئلة شائعة

أي نكهة Regex تستخدم الأداة؟

JavaScript كما ينفّذها متصفحك. الأنماط التي تعمل هنا تعمل بالطريقة نفسها مع new RegExp في كود JavaScript أو TypeScript الخاص بك.

لماذا أرى تطابقًا واحدًا فقط؟

بدون العلم g (عام) يتوقف Regex في JavaScript عند أول تطابق. فعّل g لتجدها كلها.

لماذا انتهت مهلة النمط؟

المحددات الكمية المتداخلة مثل (a+)+ أو (.*)* قد تجعل المحرك يجرّب عددًا أُسّيًا من المسارات على نص يكاد يطابق. اجعل الجزء الداخلي أدق أو أزل التداخل.

هل يُرسل نصي إلى أي مكان؟

لا. يُعالَج النمط والنص بالكامل في متصفحك ولا يُرسلان إلى أي خادم.