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

جرّب النمط على نصك: تطابقات مميّزة ومجموعات واستبدال فوري.

الرايات

النص والتطابقات مميّزة

اكتب نصًا لتظهر التطابقات.

أدخل نمطًا لتبدأ المطابقة.

جرّب:

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

  1. اكتب النمط بدون الشرطتين المائلتين، واختر الرايات المناسبة.
  2. الصق النص الذي تبحث فيه، فتُميَّز التطابقات مباشرة ويظهر جدول المجموعات.
  3. فعّل «استبدال» لتجرب نص الاستبدال بمجموعاته قبل استخدامه في كودك.

عن الأداة

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

الرايات تغيّر سلوك المحرك: g تعني كل التطابقات لا الأول فقط، وi تتجاهل حالة الحروف، وm تجعل ^ و$ يعملان على كل سطر، وs تجعل النقطة تشمل السطر الجديد، وu تفعّل وضع يونيكود وهي شرط لاستخدام خصائص مثل \p{Script=Arabic}.

للعربية تنبيه مهم: ⁦\w⁩ و⁦\b⁩ في جافاسكربت معرّفان على الحروف اللاتينية والأرقام والشرطة السفلية فقط، فلا يتعاملان مع الحروف العربية كما تتوقع. استخدم نطاقًا صريحًا مثل ⁦[\u0621-\u064A]⁩ أو ⁦\p{Script=Arabic}⁩ مع الراية u. صفحة «ريجكس للعربية» هنا فيها المرجع كاملًا.

يُشغَّل النمط في خيط مستقل داخل متصفحك، فإذا كتبت نمطًا يسبب «تراجعًا كارثيًا» (مثل تكرار داخل تكرار على نص طويل) يتوقف بعد ثانيتين ويظهر تنبيه، بدل أن تتجمد الصفحة. هذه المشكلة نفسها تُسقط خوادم حقيقية، فمن الجيد أن تراها مبكرًا.

أسئلة شائعة

لماذا لا يطابق نمطي الكلمات العربية؟

غالبًا لأنك استخدمت ⁦\w⁩ أو ⁦\b⁩، وهما لا يشملان الحروف العربية. استبدلهما بنطاق صريح للحروف العربية، أو استخدم ⁦\p{Script=Arabic}⁩ مع الراية u.

ما الفرق بين الجشع والكسول في التكرار؟

التكرار الجشع مثل ⁦.*⁩ يمتد إلى أبعد ما يستطيع ثم يتراجع، والكسول ⁦.*?⁩ يأخذ أقل ما يكفي. عند استخراج محتوى بين وسمين استخدم الكسول وإلا ابتلع النمط كل ما بين أول وسم وآخر وسم.

هل يُرسل نصي إلى الخادم؟

لا. النمط والنص يبقيان في متصفحك، والمطابقة تجري فيه.

هل أستخدم regex لتحليل HTML؟

لا. HTML متداخل ولا يصفه تعبير نمطي وصفًا صحيحًا. استخدم محلل HTML حقيقي، واترك regex لالتقاط أنماط بسيطة داخل نص.