محول نكهات Regex (PCRE / JS / Python / Go)

مطور
إعلان · حذف؟

لوحة الاختبار

مراجع القواعد

إعلان · حذف؟

مرشد

مُحَوّل نماذج النماذج (PCRE / JS / Python / Go)

مُحَوّل نماذج النماذج

يُحول بين نماذج النماذج في لغات البرمجة: PCRE (PHP)، JavaScript، Python، Go، Java، وRuby. يحوّل تلقائيًا المجموعات المُسمّاة، العلامات، التراجعات، وغيرها من التباينات. يُظهر تحذيرات واضحة حول الميزات غير المدعومة. يحتوي على لوحة اختبار لضمان صحة النموذج المُحول على نص عيني.

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

أدخل نموذج النماذج، اختر نوع المصدر (اللغة التي يُكتب بها) ونوع الوجهة (اللغة التي ترغب في تحويلها إليها). يظهر النموذج المُحول فورًا مع ترجمة العلامات. افحص ملاحظات التحويل للحصول على التغييرات والتحذيرات حول الميزات غير المدعومة. استخدم لوحة الاختبار لضمان صحة النموذج المُحول على نص عيني.

خصائص

  • 6 أنماط نماذج — PCRE (PHP)، JavaScript (ES2018+)، Python (مودول re)، Go (regexp)، Java (java.util.regex)، وRuby. يمكن التحويل بين أي زوج.
  • تحويل المجموعات المُسمّاة — يحوّل تلقائيًا بين (?P…) (PCRE/Python/Go) و(?…) (JS/Java/Ruby).
  • ترجمة العلامات — يحوّل العلامات بين الأنواع: /gi (JS) ↔ re.IGNORECASE (Python) ↔ (?i) inline (PCRE/Go) ↔ Pattern.CASE_INSENSITIVE (Java).
  • تحويل التراجعات — يحوّل التراجعات المُسمّاة: (?P=name) ↔ \k بين الأنواع.
  • تحذيرات حول عدم التوافق — تنبيهات ملونة: أخضر للتحويلات النظيفة، أصفر لتعديلات في القواعد، أحمر للميزات غير المدعومة (مثل عدم دعم Go للبحث وراء، ولا يدعم JS المجموعات الذاتية).
  • لوحة الاختبار — اختبر النموذج المُحول على نص عيني. يُظهر التوافق، المجموعات، وعدد التوافقات باستخدام محرك RegExp في JavaScript.
  • مراجع القواعد — جدول مُجمّع يمكن تقليله يُظهر الفروق الرئيسية بين جميع الأنواع: المجموعات المُسمّاة، التحقق مسبقًا/متأخرًا، العلامات، فئات الأحرف، المجموعات الذاتية، دعم Unicode.
  • التحويل التلقائي — تُحدث النتائج فورًا عند الكتابة أو تغيير الأنواع.

ما يُحوّل

المجموعات المُسمّاة: الاختلاف بين (?P) و(?)
الإشارات المُسمّاة: (?P=name) ↔ \k ↔ \g{name}.
العلامات: العلامات المُدمجة (?imsx)، التذييل /gi، والثوابت الخاصة باللغة.
التحقق من التراجعات: مدعومة في PCRE/JS/Java، محدودة في Python/Ruby، غير مدعومة في Go.
المجموعات الذاتية: (?>…) — متوفرة فقط في PCRE/Java/Ruby؛ تُحذر في JS/Python/Go.
الكميات الممتلئة: a++ — متوفرة فقط في PCRE/Java/Ruby.
فئات الأحرف: \R، \h، \v (مميزة لـPCRE) تُشير إلى أنها غير مدعومة في الأنواع الأخرى.
تعليقات: (?#…) — متوفرة فقط في PCRE/Python.
الشروط: (?(cond)yes|no) — متوفرة فقط في PCRE.

إعلان · حذف؟

لماذا تختلف نماذج النماذج بين اللغات؟

تطورت أدوات نماذج النماذج بشكل مستقل في لغات البرمجة. أصبح محرك نماذج Perl (PCRE) أقوى بزيادة ميزات مثل المجموعات المُسمّاة، التحقق من التراجع، المجموعات الذاتية، وغيرها. اعتمدت لغات أخرى على مجموعات مختصرة: كانت نماذج JavaScript بسيطة في البداية، ثم أضيفت ميزات (المجموعات المُسمّاة في ES2018، التحقق من التراجع في ES2018). يستخدم مودول re في Python نمط (?P) الذي اشتق من اقتراح مبكر. اخترع Go محركًا بسيطًا (RE2) يضمن التوافق الخطي، لكنه يُفقد ميزات مثل التحقق من التراجع. اتخذت كل لغة قرارات مختلفة بين القوة والكفاءة.

ما الميزات التي لا يمكن تحويلها؟

توجد ميزات تتوفر فقط في لغة واحدة أو اثنتين ولا تمتلك مكافئًا في غيرها. لا توجد ميزات للتحقق من التراجع في محرك RE2 في Go — لا توجد طريقة بديلة، فقط إعادة تصميم النموذج. لا توجد ميزات مماثلة للأنماط الذاتية أو الكمية الممتلئة (PCRE/Java/Ruby) في JavaScript، Python، أو Go. لا يمكن استخدام فئات الأحرف الخاصة بـPCRE مثل \R (أي توقف سطر)، \h (المسافات الأفقية)، و\v (المسافات الرأسية) دون توسعة إلى مكافئات فئات الأحرف. لا توجد أنماط شرطية (?(cond)yes|no) في PCRE. يحذر هذا الأداة من هذه الوضعيات لكي تعرف ما يحتاج إلى تدخل يدوي.

هل تُعتبر لوحة الاختبار دقيقة لجميع الأنواع؟

تستخدم لوحة الاختبار محرك RegExp في JavaScript، وبالتالي تُختبر سلوك نماذج JavaScript بدقة. بالنسبة للأنماط الأخرى، تُقدّم تقريبًا دقيقًا، لكن قد تختلف في حالات حافة — خاصة في التعامل مع Unicode، سلوك الأسطر، والخصائص التي لا يدعمها JavaScript (مثل المجموعات الذاتية). للإستخدام في الإنتاج، يجب اختبار النموذج المُحول في اللغة المستهدفة. تُستخدم لوحة الاختبار بشكل أفضل للتحقق من التوافق الأساسي للنماذج.

ما الفرق بين نماذج PCRE و JavaScript؟

PCRE (نماذج متوافقة مع Perl، تستخدم في PHP) هو النوع الأكثر تطورًا: يدعم المجموعات المُسمّاة باستخدام (?P)، التحقق من التراجع المتغير الطول، المجموعات الذاتية (?>…)، الكمية الممتلئة (a++)، الأنماط الشرطية، الأنماط المتكررة، والتحقق من العلامات (مثل (?i:…). أما نماذج JavaScript فهي بسيطة: تستخدم (name) للإشارات، تم إضافة التحقق من التراجع في ES2018، ولا تدعم المجموعات الذاتية أو الكمية الممتلئة أو الشرطية. تستخدم PCRE نمط /pattern/flags مثل JavaScript لكنها تدعم علامات أكثر (x للوضع التفصيلي، s للنظام الكامل). غالبًا ما يتطلب تحويل PCRE إلى JS إزالة ميزات متقدمة.

هل تريد حذف الإعلانات؟ تخلص من الإعلانات اليوم

تثبيت ملحقاتنا

أضف أدوات IO إلى متصفحك المفضل للوصول الفوري والبحث بشكل أسرع

أضف لـ إضافة كروم أضف لـ امتداد الحافة أضف لـ إضافة فايرفوكس أضف لـ ملحق الأوبرا

وصلت لوحة النتائج!

لوحة النتائج هي طريقة ممتعة لتتبع ألعابك، يتم تخزين جميع البيانات في متصفحك. المزيد من الميزات قريبا!

إعلان · حذف؟
إعلان · حذف؟
إعلان · حذف؟

ركن الأخبار مع أبرز التقنيات

شارك

ساعدنا على الاستمرار في تقديم أدوات مجانية قيمة

اشتري لي قهوة
إعلان · حذف؟