مختبر التعبيرات النمطية
اختبر تعبيراً نمطياً على نصّك وشاهد كل تطابق مع موضعه ومجموعات الالتقاط. بدّل إلى وضع الاستبدال لإعادة كتابة النص، أو وضع الاستخراج لإخراج مجموعة في كل سطر.
اكتب النمط، والصق النص، وشاهد كل تطابق مميّزاً بموضعه ومجموعات الالتقاط. وبدّل إلى وضع الاستبدال لإعادة كتابة النص ببديل، أو إلى وضع الاستخراج لإخراج مجموعة التقاط واحدة سطراً سطراً؛ وهذه أسرع طريقة لفحص النمط قبل إدراجه في الكود.
والمحرك هو نكهة التعبيرات النمطية في JavaScript التي تستخدمها المتصفحات، فتطابق النتيجة ما تحصل عليه في Node أو في وحدة تحكم المتصفح، بما في ذلك المجموعات المسمّاة والاستباق والكمّيات المتكاسلة. وتتوفر رايات (flags) للبحث الشامل وتجاهل حالة الأحرف وتعدد الأسطر ومطابقة النقطة للأسطر الجديدة وUnicode، ويُوقف أي نمط جامح بدلاً من أن يجمّد التبويب.
كيفية اختبار تعبير نمطي
أدخل النمط واضبط الرايات (flags)
الصق النص المراد اختباره
اقرأ التطابقات، أو استخدم وضعي الاستبدال والاستخراج
الأسئلة الشائعة
أي نكهة تعبيرات نمطية تُستخدم؟
نكهة JavaScript (ECMAScript)، وهي المحرك نفسه المستخدم في متصفحك وفي Node.js. وقد تحتاج الأنماط المكتوبة لـ PCRE أو Python أو Java إلى تعديلات صغيرة؛ فالكمّيات التملكية والاستدعاء الذاتي ليسا جزءاً من هذه النكهة.
لماذا يتجمّد النمط أو يتوقف؟
السبب هو التراجع الكارثي، وغالباً ما ينشأ من كمّيات متداخلة مثل (a+)+ أمام نص طويل لا يطابق النمط. وتتوقف الأداة بعد عدد ثابت من التكرارات حمايةً للتبويب؛ فبسّط النمط أو ثبّته بمرساة.
كيف أستبدل نصاً؟
بدّل إلى وضع الاستبدال وأدخل النص البديل. وتُدرج الرموز $1 و$2 أو $<name> مجموعات الالتقاط، فيمكنك إعادة تنسيق التواريخ أو تبديل الحقول أو تنظيف السجلات.
ماذا يفعل وضع الاستخراج؟
يُخرج مجموعة التقاط واحدة في كل سطر بدلاً من التطابق كله، وهو بالضبط ما تريده عند استخراج عناوين البريد الإلكتروني أو عناوين URL أو المعرّفات من كتلة نصية.
هل تعمل الأسطر الجديدة في النمط؟
فقط مع رايتي تعدد الأسطر أو مطابقة النقطة للأسطر الجديدة. فافتراضياً لا تطابق النقطة سطراً جديداً، وهذا سبب شائع لنجاح النمط على سطر واحد وفشله على فقرة.
هل يُرفع النص الذي ألصقه؟
لا، تجري المطابقة محلياً؛ وهذا مفيد عندما يحتوي النص على بيانات سجلات حقيقية أو معلومات عملاء.
نظرة سريعة
| المدخل | نص |
|---|---|
| عدة ملفات | لا |
| مكان التشغيل | في متصفحك، ولا تُرفع الملفات أبداً |
| يعمل دون اتصال | نعم — بعد تحميل الصفحة |
| السعر | مجاني، بلا تسجيل وبلا علامة مائية |
أين تنكسر التحويلات بهدوء
معظم أخطاء التحويل لا تتعلق بالصياغة بل بالمعنى. فعمود من الرموز البريدية في ملف CSV يفقد أصفاره البادئة في اللحظة التي يخمّن فيها جدول البيانات أنه رقم؛ ومعرّف طويل يتجاوز دقة الفاصلة العائمة؛ والتواريخ يتغير معناها بحسب ما إذا كان اليوم أولاً أم الشهر أولاً. ومفاتيح JSON غير مرتبة أما المصفوفات فمرتبة، والأداة التي ترتب المفاتيح لا تغيّر شيئاً بينما التي ترتب المصفوفات تغيّر البيانات. وUnicode فخ آخر: فقد يصل النص بترميز UTF-8 أو UTF-16 أو مع علامة ترتيب البايتات، وفاكّ الترميز الذي يخمّن خطأً يحوّل المحارف المشكّلة إلى نص مشوّه. وقبل أن تثق بأي تحويل، افحص الصف الأول والأخير، وكل حقل فيه أصفار بادئة، وكل حقل يحتوي على علامات تنصيص أو فواصل أو أسطر جديدة.
اختيار صيغة البيانات
JSON هو الصيغة الافتراضية لكل ما تُرجعه واجهة API أو يقرأه برنامج: فهو يتعامل بطبيعته مع البنى المتداخلة والأرقام والقيم المنطقية وnull، وكل لغة تحلّله. أما CSV فأصغر حجماً ويُفتح مباشرة في جدول بيانات، لكنه لا يملك وسيلة للتعبير عن التداخل ولا معياراً مشتركاً للفاصل أو التنصيص أو مجموعة المحارف، وهذا بالضبط موضع الخطأ في التحويلات. أما XML فمطوّل لكنه يحمل السمات والمحتوى المختلط والمخططات، ولذلك ما زال مهيمناً على صيغ المستندات والتكاملات القديمة. وYAML هو الأسهل قراءةً في الإعدادات لكنه حساس للمسافات البيضاء وفيه إكراه مفاجئ للأنواع («no» تصبح false، وإصدار مثل 1.10 يصبح 1.1). فاختر الصيغة التي تفضّلها الأداة المستهلكة لا الصيغة الأجمل منظراً.