اختبار التعبيرات النظامية
اختبر وتصحح التعبيرات النظامية فوراً في متصفحك. أضئ التطابقات، وشاهد مجموعات الالتقاط، واستخدم وضع الاستبدال — مجانًا وبخصوصية تامة.
اختبر وتصحح التعبيرات النظامية فوراً في متصفحك. أضئ التطابقات، وشاهد مجموعات الالتقاط، واستخدم وضع الاستبدال — مجانًا وبخصوصية تامة.
التعبيرات العادية هي لغة خاصة بالمجال لمطابقة الأنماط في النص. لقد كانت جزءًا من الحوسبة منذ عام 1968 وهي الآن مدمجة في كل لغة برمجة حديثة ومحرر نصوص وأداة بحث في سطر الأوامر. إن بناء الجملة موجز ولكنه عرضة للأخطاء: فالتغييرات الصغيرة تنتج سلوك مطابقة مختلفًا بمهارة، وتصبح التعبيرات المعقدة غير قابلة للقراءة بسرعة. إن أداة الاختبار التي تعرض التطابقات في الوقت الفعلي أثناء قيامك بتحرير النمط هي الطريقة الأكثر فعالية لتطوير التعبير العادي والتحقق منه.
يعمل هذا الاختبار في متصفحك باستخدام محرك JavaScript regex (نفس المحرك الذي يستخدمه تطبيقك إذا كان يعمل في متصفح). يتم تحديث الأنماط ونص الاختبار بشكل تفاعلي: كل تغيير لأي منهما يعيد تشغيل المطابقة. يتم تمييز مجموعات المطابقة، ويتم إدراج المجموعات التي تم التقاطها، ويتم عرض العلامات (حساسة لحالة الأحرف، ومتعددة الأسطر، وعامة) للاختبار.
يختلف بناء جملة Regex بمهارة بين المحركات. تتبع JavaScript مواصفات ECMAScript؛ لكل من Python وPCRE (التي تستخدمها PHP وغيرها الكثير) وJava وGo لهجاتهم الخاصة مع ميزات متداخلة ولكنها ليست متطابقة. الأنماط التي تم تطويرها هنا تستخدم بناء جملة ECMAScript؛ تتطلب إمكانية النقل عبر المحركات التحقق من وثائق كل هدف.
من المعروف أن أخطاء Regex يصعب تصحيحها بعد النشر. قد يتطابق النمط الذي يبدو معقولاً أكثر أو أقل مما هو مقصود، أو يفشل في الحالات المتطورة، أو يكون له تراجع كارثي في بعض المدخلات. أنماط الاختبار بشكل تفاعلي مقابل المدخلات التمثيلية تكتشف المشكلات قبل مراجعة التعليمات البرمجية وإنتاجها.
تستفيد الأنماط أيضًا من التوثيق. إن عرض التعبير العادي جنبًا إلى جنب مع الإدخال الذي يجب أن يطابقه والإدخال الذي لا يجب أن يتطابق معه يجعل النية واضحة. يقدر المشرفون المستقبليون (بما في ذلك أنت بعد ستة أشهر) حالات الاختبار الموثقة أكثر من تقديرهم للسطور الفردية الذكية.
اكتب نمطًا، واكتب إدخال الاختبار، وشاهد التطابقات المميزة مباشرة.
يتبع JavaScript regex مواصفات ECMAScript. الميزات الرئيسية: فئات الأحرف ([abc]، [^abc])، ومحددات الكمية (*، +، ?، {n,m})، والتناوب (|)، والتجميع ((...))، ومجموعات الالتقاط وغير الالتقاط، والنظر الأمامي والخلفي (المحركات الحديثة)، والمراجع الخلفية، والمجموعات المسماة، وهروب خاصية Unicode (مع علامة u)، والمجموعة القياسية لتسلسلات الهروب.
اختلافات مهمة عن PCRE وPython: دعم lookbehind حديث في JavaScript (2018+)؛ تستخدم المجموعات المسماة بناء الجملة (؟<name>...)؛ تتطلب بعض عمليات الهروب من Unicode وضع علامة u للعمل بشكل صحيح. يجب التحقق من الأنماط المخصصة للاستخدام عبر اللغات مقابل وثائق كل هدف.
الأداء: يمكن أن يكون لمحركات regex المستندة إلى التراجع (معظمها بما في ذلك JavaScript) تراجع كارثي في بعض الأنماط المرضية. تعتبر الاختبارات التي تعلق جهاز الاختبار علامة على أن النمط يحتاج إلى التبسيط - عادة عن طريق تجنب محددات الكمية المتداخلة والتناوب الغامض.