كيف أختبر تعبيرًا نمطيًّا؟
أدخل نمطًا ونصًّا نموذجيًّا فيُبرز الأداة كل تطابق، ويسرد مجموعات الالتقاط، ويتيح لك تشغيل الأعلام مثل global وmultiline وعدم حساسية الحالة وإيقافها. تجري المطابقة في متصفحك بمحرّك التعبيرات النمطية في JavaScript نفسه، فالنتائج هي بالضبط ما ستراه شيفرتك.
يعمل بالكامل داخل متصفحك · بلا رفع · بلا حساب · بلا علامة مائية
- اكتب نمطًا وحدّد الأعلام التي تريدها.
- الصق نصًّا نموذجيًّا للمطابقة معه.
- اقرأ الإبرازات، ثم قائمة التطابقات أدناه.
التظليل
المطابقات
ما تستطيع هذه الصفحة فعله
- إبراز حيّ لكل تطابق
- قائمة بالتطابقات مع إزاحاتها ومجموعات الالتقاط
- تشغيل/إيقاف الأعلام g وi وm وs وu
- الإبلاغ عن الأنماط غير الصالحة بدل الفشل الصامت
متى تستخدم هذه الصفحة
- تجربة تعبير نمطي في JavaScript على سلسلة نموذجية.
- معرفة أي مجموعات التقاط وأعلام تنتج أي تطابقات.
- فحص نمط قبل وضعه في شيفرة الواجهة الأمامية.
متى تختار أداة أخرى
- النمط يستهدف Python أو PCRE أو .NET أو Java — فالصياغة وسلوك التراجع تختلف عن RegExp في JavaScript.
- المدخل غير موثوق والنمط قد يتراجع كارثيًّا؛ فالاختبار يعمل على الخيط الرئيسي وقد يجمّد التبويب.
- تحتاج إلى شرح خطوة بخطوة أو قياس أداء أو مهلة زمنية.
كيف تقارن بالخيارات الأخرى
تتيح لك regex101 وأدوات مماثلة تبديل المحرّكات وشرح كل رمز وفرض مهلة. تشغّل هذه الصفحة RegExp المتصفح نفسه بلا أي من تلك الحمايات، فهي أمينة لـJavaScript لكنها تشترك في حدوده: لا مجموعات ذرّية، ولا مكمّمات تملكية، ولا حصانة ضد نمط مَرضي. تعبير سيّئ عن قصد قد يعلّق التبويب حتى تغلقه.
إلى أين تذهب ملفاتك
إلى لا مكان. هذه الصفحة تحمّل الشيفرة التي تقوم بالعمل، ومنذ تلك اللحظة يقرأ متصفحك أنت الملفَّ الذي تفتحه. لا خطوة رفع، ولا نسخة مؤقتة على خادم، ولا تنظيف عليك أن تثق به — البيانات لا تعبر الشبكة أبدًا، فلا يبقى شيء تحذفه لاحقًا. يمكنك التحقق بنفسك: افتح لوحة الشبكة في متصفحك أثناء عمل الأداة وراقبها وهي صامتة.
أسئلة حول هذه الأداة
- توقّفت الصفحة عن الاستجابة عندما استخدمت نمطي. لماذا؟
- ذلك تراجع كارثي (catastrophic backtracking): نمط مثل (a+)+b مقابل سلسلة طويلة من “a” يجعل المحرّك يجرّب عددًا أسّيًّا من الطرق للفشل. تحدّ هذه الصفحة عدد التطابقات حتى لا تتواصل حلزونيًّا إلى ما لا نهاية، لكن تطابقًا عنيدًا واحدًا قد يستغرق لحظة رغم ذلك. أعد كتابة المكمّمات المتداخلة بحيث لا يكون للمحرّك إلا مسار واحد — مثل a+b — أو ثبّت النمط بـ^ أو $.
- ما الأعلام التي يمكنني تشغيلها؟
- g يبحث عن كل تطابق بدل الأول، وi يتجاهل حالة الأحرف، وm يجعل ^ و$ يطابقان عند فواصل الأسطر، وs يتيح لـ. مطابقة الأسطر الجديدة أيضًا، وu يشغّل وضع Unicode الكامل اللازم لتصحيحات الخصائص \p{...} وللتعامل الصحيح مع المحارف خارج المستوى الأساسي. والنتائج هي بالضبط ما يعطيه محرّك JavaScript نفسه، فتطابق شيفرتك.
- لماذا تُسرد بضعة آلاف فقط من التطابقات؟
- القائمة محدودة السقف حتى لا يتمكّن نمط يطابق كل محرف — مثل . مع العلم العام على مستند طويل — من تجميد التبويب وهو يبني آلاف الصفوف. والحدّ عالٍ بما يكفي لسلاسل الاختبار الواقعية؛ وإذا بلغته فضيِّق النمط أو اختصر العيّنة.
أدوات أخرى في المجموعة نفسها
- مولّد رموز QRحوّل أي نص أو رابط إلى رمز QR بصيغة PNG أو SVG قابلة للتنزيل.
- منسّق JSONنسّق JSON وقلّصه وتحقق منه، مع ذكر موضع الخطأ عند عدم صحته.
- مولّد التجزئاتتجزئات SHA-1 وSHA-256 وSHA-384 وSHA-512 لنص أو ملف، محسوبة محليًا.
- مرمّز Base64رمّز نصًا أو ملفًا إلى Base64 وفكّ ترميزه، بما في ذلك الصيغ الآمنة للروابط.