UltraConvert
أدوات النصوص

Regex Tester

قم بتطوير وتصحيح تعبيرات عادية مع اختبار مباشر ضد نصك العينة. يُظهر التظليل البصري للمطابقة بالضبط ما يتم مطابقته. افحص مجموعات الالتقاط، واختبر سلاسل الاستبدال، وقم بتبديل جميع أعلام JavaScript Regex. يمنع توقيت التنفيذ البالغ 200 مللي ثانية الأنماط الهاربة من تجميد المتصفح.

ماذا تفعل هذه الأداة؟

يوفر Regex Tester بيئة تفاعلية لتطوير تعبيرات JavaScript العادية. يقدم تظليلًا مباشرًا للمطابقة في النص الاختباري، وفحصًا مفصّلًا لمجموعات الالتقاط (المرقمة $1، $2 والمجموعات المسمّاة)، وجميع أعلام JavaScript Regex (g العالمية، i تجاهل الحروف الكبيرة/الصغيرة، m متعددة الأسطر، s dotAll، u Unicode، y اللزجة)، ووضع الاستبدال لاختبار استبدالات Regex مع مراجع $1، $2. يكتشف الواجهة أخطاء Regex الشائعة وتمنع التراجع الكارثي مع توقيت 200 مللي ثانية لكل تنفيذ.

كيف تعمل

يُعدّ الأداة كائن JavaScript RegExp من سطر النمط والأعلام المحددة. للمطابقة، يستخدم RegExp.prototype.exec() في حلقة للمطابقات العالمية أو تنفيذًا واحدًا للمطابقات غير العالمية. يتم تظليل المطابقات عن طريق حساب مواضع الأحرف في النص. تُستخرج مجموعات الالتقاط من مصفوفة المطابقة (المؤشر 0 هو المطابقة الكاملة، 1+ هي المجموعات). بالنسبة للاستبدال، يُستخدم String.prototype.replace() مع سطر الاستبدال الذي يمكنه الرجوع إلى $& (المطابقة الكاملة)، $1-$99 (مجموعات الالتقاط)، $` (قبل المطابقة)، $' (بعد المطابقة). يقوم كلب الحراسة القائم على setTimeout بإنهاء التنفيذ إذا تجاوز 200 مللي ثانية، مما يحمي من أنماط ReDoS (هجمات حرمان الخدمة بتعبير عادي).

الميزات

كيفية الاستخدام

  1. 1

    أدخل نمطك

    اكتب نمط Regex بدون شريطين أماميين/خلفيين — فقط جسم النمط. استخدم نطق JavaScript Regex القياسي.

  2. 2

    قم بتبديل الأعلام حسب الحاجة

    g للعالمية (إيجاد جميع المطابقات)، i لتجاهل الحروف الكبيرة/الصغيرة، m لـ ^/$ مطابقة بداية/نهاية السطر، s للنقطة مطابقة الأسطر الجديدة، u لـ Unicode، y للمطابقة اللزجة.

  3. 3

    الصق النص الاختباري

    أدخل نص عينة يجب أن يطابق (وبعضه لا يجب أن يطابق). يتم تظليل المطابقات مباشرة أثناء التعديل. انقر على أي مطابقة للحصول على التفاصيل.

  4. 4

    راجع المطابقات والمجموعات

    يظهر كل مطابقة النص الكامل، والموضع، وجميع مجموعات الالتقاط. استخدم هذا للتحقق من استخراج النمط للبيانات الصحيحة.

  5. 5

    اختبر الاستبدال (اختياري)

    انتقل إلى وضع الاستبدال لاختبار أنماط الاستبدال. استخدم $1، $2 لمراجع مجموعات الالتقاط، $& للمطابقة الكاملة.

حالات الاستخدام الشائعة

تطوير النمط

بناء وتحسين أنماط Regex للتحقق من صحة البيانات، والتحليل، والاستخراج، ومعالجة النص قبل إضافتها إلى الكود.

استكشاف أخطاء Regex

عندما يتصرف Regex في كودك بشكل غير متوقع، الصقه هنا مع بيانات عينة لعزل المشكلة.

تخطيط استخراج البيانات

تطوير أنماط لتحليل السجلات، أو استخراج الويب، أو تنظيف البيانات عن طريق اختبارها ضد بيانات عينة حقيقية.

اختبار استراتيجية الاستبدال

اختبار أنماط البحث والاستبدال مع مجموعات الالتقاط قبل تطبيقها على مجموعات بيانات كبيرة أو كود الإنتاج.

نصائح وأفضل الممارسات

الأسئلة المتكررة

هل يدعم ميزات PCRE فقط؟
يستخدم RegExp الخاص بـ JavaScript. المتصفحات الحديثة تدعم ميزات ES2018+: التراجع البصري (?<=...)، المجموعات المسمّاة (?<name>...)، ونسب خصائص Unicode \p{...}. هذه تعمل في المتصفحات الحالية.
ماذا عن حقن Regex إذا قمت بلصق أنماط غير موثوقة؟
يمنع توقيت 200 مللي ثانية لكل محاولة مطابقة هجمات التراجع الكارثي (ReDoS). يتم إيقاف الأنماط التي ستستمر للأبد بشكل آمن.
لماذا يطابق نمطي بشكل مختلف عن Python/PHP/Java؟
لغات مختلفة لها نكهات Regex مختلفة قليلاً. JavaScript يفتقر إلى بعض الميزات (المجموعات الذرية، الكمية المملوكة) ولديه سلوك مختلف قليلاً لبعض الحالات الحدية. تُظهر هذه الأداة سلوك JavaScript.
هل يمكنني حفظ أو مشاركة Regex الخاص بي؟
حاليًا، الأنماط غير قابلة للحفظ في الأداة. انسخ النمط والأعلام يدويًا للمشاركة أو الحفظ. مشاركة عبر URL قيد خارطة الطريق.

أدوات ذات صلة