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

جرّب التعابير النمطية (Regex) وشاهد التطابقات ملوّنة، مع محتوى المجموعات ونتيجة الاستبدال فورًا.

التعبير النمطي والنص

العلامات

0 حرفًا · 0 سطرًا

النتيجة

طريقة عرض النتيجة

أدخل تعبيرًا نمطيًا ونصًا لتظهر التطابقات ملوّنة.

تتم المعالجة كلها على هذا الجهاز، ولا يُرسَل ما تكتبه إلى أي مكان.

تعمل الأداة بالتعابير النمطية في JavaScript (المتصفح). قد تختلف الصيغة قليلًا عن Python وPHP وJava وغيرها.

هل كانت مفيدة؟ يسعدنا أن تشاركها

هل هناك ما لا يعمل، أو لديك فكرة لتحسينه؟

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

  1. 1. أدخل التعبير النمطي

    في «التعبير النمطي»، اكتب النمط الذي تريد البحث عنه. والرموز التي يصعب كتابتها مثل \d و[ ] تُدرَج في موضع المؤشر عند الضغط على أزرار الرموز أسفل الحقل. ويمكنك أيضًا اختيار نمط جاهز كالبريد الإلكتروني أو التاريخ من «اختر نمطًا شائعًا». واضغط «المعنى» أعلى يسار الحقل لترى ما يطابقه كل جزء.

  2. 2. أدخل النص

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

  3. 3. بدّل العلامات واطّلع على قائمة التطابقات

    عطّل «g الكل» في «العلامات» ليُبحث عن التطابق الأول فقط (وفعّلها مجددًا للبحث عن الكل). وفي «قائمة التطابقات» بالأسفل يظهر موضع كل تطابق ومحتوى المجموعات ($1 و<year> وغيرها). اضغط على أي صف لتحديد موضعه في النص أعلاه.

  4. 4. استخرج الأجزاء المطابقة وحدها

    اختر «الاستخراج» أعلى «النتيجة» لتظهر الأجزاء المطابقة وحدها، واحدًا في كل سطر. وإذا كان في التعبير مجموعات، فاختر من قائمة «التطابق كله» مجموعة مثل <year> لتستخرجها وحدها. فعّل «إزالة التكرار» ليظهر كل نص مكرر مرة واحدة، واضغط «نسخ نتيجة الاستخراج» للنسخ، أو «حفظ كملف نصي» للحفظ في ملف.

  5. 5. جرّب الاستبدال وانسخ النتيجة

    اختر «الاستبدال» أعلى «النتيجة»، ثم اكتب في «الاستبدال بـ» شيئًا مثل $<day>/$<month>/$<year> فيظهر النص بعد الاستبدال فورًا. اضغط «نسخ نتيجة الاستبدال» لنسخه.

مناسب عندما تريد

  • التأكد من صحة تعبير نمطي كتبته

    قبل وضعه في الكود، ترى بالألوان فورًا هل يطابق ما تريده فقط أم يلتقط أشياء زائدة. وعندما يصبح جاهزًا، اختر لغة مثل Python أو PHP أو Go وانسخه بصيغة تلصقها في الكود مباشرة.

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

  • فهم تعبير نمطي كتبه غيرك

    الصق التعبير من كود ورثته أو من مقال، واضغط «المعنى»، فيظهر ما يطابقه كل جزء بكلمات قصيرة مثل «رقم واحد (التكرار: 4)».

    من يقرؤون الكود ومن يتعلمون البرمجة

  • استخراج بيانات من السجلات أو الجداول

    ابحث عن عناوين البريد أو التواريخ أو أرقام الطلبات، واعرضها واحدًا في كل سطر عبر «الاستخراج»، ثم انسخها أو احفظها في ملف نصي.

    محللو البيانات وفرق الدعم

  • جمع أجزاء المجموعات دون تكرار

    يمكنك استخراج الجزء المحاط بـ ( ) وحده، مثل نطاق عنوان البريد أو اسم المضيف في الرابط. ومع تفعيل «إزالة التكرار» تصبح القائمة التي يتكرر فيها النص نفسه مرات كثيرة قائمة بلا تكرار.

    محللو البيانات ومسؤولو المواقع

  • تجربة الاستبدال قبل تطبيقه دفعة واحدة

    قبل الاستبدال الجماعي في المحرر أو جدول البيانات، تحقّق من النتيجة باستخدام $1 وما شابهه.

    من ينظّمون النصوص والجداول

  • إعداد التحقق من حقول النماذج

    اكتب التعبير الذي يتحقق من الرمز البريدي أو رقم الهاتف، وجرّبه على مدخلات مختلفة.

    من يصمّمون النماذج

قبل الاستخدام

  • تعمل الأداة بتعابير JavaScript النمطية. ولا تعمل الصيغ الخاصة بـ Python أو PHP أو Java أو ‎.NET وحدها، مثل المكمّمات الاستحواذية ++ و(?i).
  • عند النسخ بصيغة لغة أخرى، تُصحَّح اختلافات الصيغة قدر الإمكان. وما لا يمكن تصحيحه (كالنظر للخلف في Go) يُنبَّه إليه بسطر قصير، فجرّبه في تلك اللغة أيضًا.
  • يُوقَف التعبير الذي يستغرق وقتًا طويلًا بعد ثانيتين مع تنبيه. إذا حدث ذلك، فقلّل التكرارات المتداخلة.
  • تعرض القائمة أول 300 تطابق، ويُلوَّن ويُستخرج أول 5000 تطابق فقط (أما العدّ فيشمل الكل).

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

التعابير النمطية (Regex) طريقة لوصف شكل النص، مثل «أربعة أرقام متتالية» أو «أحرف وأرقام بينها @»، برموز قصيرة مثل \d{4} و[\w.]+@[\w.]+ وغيرها. تُستخدم في البحث والاستبدال والتحقق من المدخلات في كثير من البرامج والمحررات، لكن خطأً صغيرًا واحدًا قد يجعلها تطابق شيئًا غير الذي تقصده.

تفحص هذه الأداة التعبير مع كل ضغطة مفتاح باستخدام تعابير JavaScript النمطية في المتصفح، وتلوّن التطابقات. وتعرض لكل تطابق محتوى المجموعات (الأجزاء بين القوسين ( )) والمجموعات المسمّاة ((?<الاسم>…))، لتتأكد أن الجزء الذي تريد استخراجه يُلتقط بشكل صحيح. وحتى التعابير التي لا تنتهي مثل (a+)+ تُفحص بشكل منفصل وبمهلة زمنية، كي لا تتجمد الصفحة.

الفرق بين العلامات
عند تفعيلهامتى تُستخدم غالبًا
g (الكل)البحث عن كل التطابقاتالاستخراج، استبدال الكل
i (تجاهل حالة الأحرف)معاملة A وa كحرف واحدالبحث عن كلمات إنجليزية
m (كل سطر)تطابق ^ و$ بداية كل سطر ونهايتهالفحص سطرًا بسطر، السجلات
s (النقطة تعبر الأسطر)تطابق النقطة . السطر الجديد أيضًامقاطع تمتد على عدة أسطر
u (Unicode)معاملة الرموز التعبيرية كحرف واحد وإتاحة \p{…}نصوص فيها حروف عربية أو رموز تعبيرية

الأسئلة الشائعة

إجابات عن أسئلة تتكرر عند اختبار التعابير النمطية.

هل يُرسَل النص أو التعبير النمطي الذي أدخلته إلى أي مكان؟

لا. تتم المعالجة كلها داخل متصفح جهازك، ولا يُرسَل النص أو التعبير إلى خادم ولا يُحفَظ. يمكنك استخدامها حتى مع سجلات داخلية أو نصوص فيها بيانات شخصية.

بأي نكهة من التعابير النمطية تعمل الأداة؟

بتعابير JavaScript ‏(RegExp في المتصفح). وتدعم المجموعات المسمّاة (?<الاسم>…) والنظر للخلف (?<=…) و\p{…} (مع العلامة u) وغيرها. قد تختلف تفاصيل الصيغة في Python وPHP وJava وغيرها، فراجع توثيق اللغة التي ستستخدمها.

هل يمكنني استخدامه في كود Python أو PHP؟

نعم. اختر اللغة من JavaScript وPython وPHP وJava وRuby وGo أعلى يسار حقل «التعبير النمطي»، ثم اضغط زر النسخ، فيُنسخ التعبير بصيغة كود تلك اللغة. وتُصحَّح اختلافات الصيغة، مثل (?P<الاسم>…) في Python و\A و\z في Ruby و(?i) في Go. وما لا يمكن كتابته في تلك اللغة، كالنظر للخلف في Go، يُنبَّه إليه بسطر قصير أسفل الحقل. وتبقى اللغة التي اخترتها محفوظة في المرة القادمة.

هل يمكنني اللصق بصيغة /abc/gi؟

نعم. إذا كان حقل «التعبير النمطي» فارغًا، فالصق شيئًا مثل /abc/gi وسيُفصَل النمط عن العلامات تلقائيًا. وبالعكس، اختر «JavaScript» أعلى يسار الحقل واضغط زر النسخ، فيُنسخ التعبير الحالي بصيغة /…/ لتلصقه في كود JavaScript مباشرة.

هل يمكنني معرفة معنى التعبير النمطي؟

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

هل يمكنني عرض الأجزاء المطابقة وحدها في قائمة؟

اختر «الاستخراج» لتظهر الأجزاء المطابقة واحدًا في كل سطر. وإذا كان في التعبير مجموعات، يمكنك اختيار جزء المجموعة وحده ($1 أو <الاسم>). استخدم «إزالة التكرار» لدمج المتكرر، ثم انسخ النتيجة أو احفظها في ملف نصي. وإذا كانت العلامة g معطّلة، يظهر التطابق الأول فقط.

أين أرى محتوى المجموعات؟

في «قائمة التطابقات» على اليسار يظهر محتوى $1 و$2… (أو <الاسم> للمجموعات المسمّاة) لكل تطابق. وتظهر المجموعة التي لم تطابق شيئًا بعبارة «(لا تطابق)».

ما الذي يمكن استخدامه في الاستبدال؟

اختر «الاستبدال» واستخدم في «الاستبدال بـ» كلًّا من $1 و$2… (المجموعات) و$<الاسم> (المجموعة المسمّاة) و$& (التطابق كله) و$$ (علامة $ نفسها). إذا كانت العلامة g مفعّلة يُستبدل الكل، وإلا فالأول فقط.

ظهرت رسالة «استغرق البحث وقتًا طويلًا فأُوقف»

التعابير التي فيها تكرار داخل تكرار مثل (a+)+ أو (.*)* قد يتضخم فيها الحساب بشكل هائل مع النصوص التي لا تطابقها (التراجع الكارثي). ولكي لا تتجمد الصفحة، يتوقف البحث بعد ثانيتين. اجمع التكرارات في تكرار واحد أو ضيّق الأحرف المطابقة، كأن تكتب [^,]* بدل .* مثلًا.

كيف أبحث دون التمييز بين الأحرف الكبيرة والصغيرة؟

فعّل «i تجاهل حالة الأحرف» في «العلامات». فتُعامَل الأحرف الكبيرة والصغيرة مثل A وa على أنها الحرف نفسه. (لا يؤثر ذلك في الحروف العربية لأنها بلا حالة.)

لا تطابق ^ و$ كل سطر

في الوضع الافتراضي تطابق ^ و$ بداية النص كله ونهايته فقط. ولكي تطابقا كل سطر، فعّل «m كل سطر» في «العلامات».

هل يمكن البحث عن الحروف العربية أو الصينية؟

نعم. مع تفعيل العلامة u يطابق \p{L} أي حرف من أي أبجدية، ويطابق \p{Script=Arabic} الحروف العربية فقط. وللحروف الصينية (الكانجي) اختر «كانجي (الحروف الصينية)» من «اختر نمطًا شائعًا»؛ فهو يستخدم \p{Script=Han} ويفعّل u تلقائيًا.

هل هي مجانية؟

نعم، مجانية. دون تسجيل أو تثبيت، وبلا إعلانات. استخدمها كما تشاء ومع نصوص بأي طول.