مختبر التعابير النمطية
اختبر التعابير النمطية (Regex) وتتبّع أخطاءها وتحقق منها، مع تمييز مباشر للتطابقات ومجموعات الالتقاط ومعاينة الاستبدال وتحليل النمط ومنشئ القوالب، كل ذلك محليًا في متصفحك.
واجهة الأداة نفسها باللغة الإنجليزية حاليًا، وتعمل بالكامل داخل متصفحك.
جارٍ تحميل الأداة…
ما هو التعبير النمطي؟
التعبير النمطي لغة أنماط مدمجة لوصف النصوص. الأحرف الحرفية تطابق نفسها، بينما تصف الأحرف الخاصة البنية: \d لرقم، و+ لمرة أو أكثر، و^ و$ لبداية المدخل ونهايته، والأقواس لمجموعات الالتقاط التي تستخرج الأجزاء التي تريدها. والفكرة تعود إلى نظرية اللغات الرسمية في خمسينيات القرن الماضي، وتظهر اليوم في كل لغة برمجة ومعظم المحررات وأدوات مثل grep وsed.
وقوتها هي صعوبتها أيضًا. فالأنماط كثيفة ولا تتسامح، والتفاصيل الصغيرة تغيّر كل شيء: المحددات الجشعة مقابل الكسولة، وهل تطابق النقطة فواصل الأسطر، وهل المطابقة حساسة لحالة الأحرف، وهل النمط مرسّى. ولمستخدمي العربية تنبيه مهم: في JavaScript لا يطابق \w الحروف العربية؛ استخدم [\u0600-\u06FF] أو \p{Script=Arabic} مع الخيار u. والمحددات المتداخلة قد تسبب تراجعًا كارثيًا يجعل نمطًا يبدو بريئًا يستغرق زمنًا أُسيًا على مدخل مصمم بعناية. والاختبار التفاعلي على عينات حقيقية هو الطريقة الموثوقة الوحيدة لكتابتها.
لماذا أنشأنا هذه الأداة
تكتب التعابير النمطية للتحقق من المدخلات، وتحليل السجلات، والبحث والاستبدال الجماعي، واستخراج الحقول من النصوص، وقواعد التوجيه، ونادرًا ما تصيب من المرة الأولى.
وبيانات الاختبار التي تلصقها هي المشكلة: أسطر سجلات حقيقية، وعناوين بريد حقيقية، وسجلات عملاء حقيقية. والمختبر على الإنترنت الذي يرسل كل ضغطة مفتاح إلى خادم يرى ذلك كله. أداتنا تقيّم النمط بمحرك التعابير النمطية المدمج في المتصفح، في تبويبك، على بياناتك، دون أي طلب عبر الشبكة. لا يُرسل شيء ولا يُخزّن، ولا حد لطول نص الاختبار، وتعمل دون اتصال بعد تحميلها.
نصائح وأخطاء شائعة
- اختبر الحالات الصعبة عمدًا: النصوص الفارغة، وUnicode، والمدخلات الطويلة جدًا، والنصوص التي يجب ألا تطابق.
- تجنب المحددات المتداخلة مثل
(a+)+، فقد تسبب تراجعًا كارثيًا على مدخلات مصممة بعناية. - نكهات التعابير النمطية تختلف بين اللغات؛ تحقق من النمط في البيئة التي ستشغّله.
- لا تستخدم تعبيرًا نمطيًا لتحليل HTML أو JSON؛ استخدم محللًا حقيقيًا للصيغ المنظمة.
بداية سريعة: استخدام مختبر التعابير النمطية
- أدخل نمطك في حقل التعبير أعلاه.
- اضبط الخيارات التي تحتاجها: الشامل، وتجاهل حالة الأحرف، ومتعدد الأسطر، وUnicode.
- الصق نص عينة واقعيًا، بما فيه الحالات الصعبة التي تتوقع أن تفشل.
- راقب التطابقات المميزة وافحص مجموعات الالتقاط.
- حسّن النمط حتى يطابق كل ما يجب ولا شيء مما لا يجب.
بعد أن يعمل النمط، تساعدك أداة مقارنة النصوص على التحقق من أن الاستبدال الجماعي فعل ما قصدته.
لماذا تختبر بدل أن تخمّن
التعابير النمطية تفشل بصمت. فنمط يُقصد به التحقق من البريد قد يقبل هراءً واضحًا أو يرفض عناوين صالحة، ولن تعرف حتى تصل إليه بيانات حقيقية في الإنتاج. والاختبار على مجموعة من العينات، بما فيها الحالات الحدّية التي تتوقع أن تفشل، يثبت سلوك النمط قبل نشره.
اختبر الإخفاقات لا النجاحات فقط
الخطأ الذي يقع فيه معظم الناس أنهم يختبرون فقط المدخلات التي يجب أن تطابق. والنمط الجيد يُعرَّف بما يرفضه بقدر ما يُعرَّف بما يقبله. ابنِ مجموعة اختبار فيها:
- مدخلات صالحة يجب أن تطابق.
- مدخلات غير صالحة يجب ألا تطابق، وهي التي تكشف النمط المفرط في الجشع.
- حالات حدّية: نصوص فارغة، ومسافات زائدة، وصيغ غير مألوفة لكنها صحيحة.
مزالق شائعة
- المحددات الجشعة.
.*يأخذ أكبر قدر ممكن؛ استخدم.*?(الكسول) حين تريد أقصر تطابق. - نسيان الترسية. دون
^و$، قد يكون «التطابق» جزءًا مدفونًا في نص أكبر. فـ\d{4}يطابق أربعة أرقام في أي مكان، لا «أربعة أرقام بالضبط». - الأحرف الخاصة غير المهرّبة. النقطة الحرفية تحتاج
\.؛ والنقطة المجردة تطابق أي حرف. - التباس الخيارات. خيارا تجاهل الحالة وتعدد الأسطر يغيّران السلوك جذريًا؛ اختبر بالخيارات التي ستستخدمها فعلًا.
- الحروف العربية.
\wو\bفي JavaScript تعرفان الحروف اللاتينية فقط؛ فلن يطابق\w+كلمة عربية.
استخدامات شائعة
- التحقق من الصيغ: البريد وأرقام الهواتف والرموز البريدية والمعرّفات.
- استخراج البيانات من السجلات أو النصوص.
- البحث والاستبدال بمجموعات الالتقاط.
- بناء قواعد تحليل للنصوص المنظمة.