تخطَّ إلى المحتوى
خصوصية 100% — تبقى ملفاتك على جهازك
>_
العربية

أداة اختبار Regex

اختبر التعبيرات النمطية (regex) مع تمييز حي للتطابقات، مجموعات الالتقاط، ومعاينة استبدال — بالكامل داخل متصفحك.

//g

المحرك: تعابير JavaScript (ECMAScript) النمطية التي ينفذها متصفحك. وقد يختلف السلوك عن PCRE وPython وGo وJava و.NET.

العلامات (Flags)
شرح النمط

أدخل نمطًا لرؤية شرحه عنصرًا عنصرًا.

مكتبة الأنماط

انقر نمطًا لتحميله (مع نص تجريبي) في المختبر.

حالة في كل سطر. ابدأ بـ "+ " إذا كان يجب أن يطابق النمط، أو بـ "- " إذا كان يجب ألا يطابق (تُتجاهل الرايتان g وy هنا).

توليد كود

أدخل نمطًا لتوليد الكود.

يُنسخ النمط كما كُتب (يُكيَّف فقط المجموعات المسماة والرايات ورموز الاستبدال). تحقق من دعم الاسترجاع والإشارات الرجعية وUnicode في المحرك الهدف.

مرجع سريع
  • \d — أي رقم (0–9)
  • \w — أي محرف كلمة (حرف، رقم، شرطة سفلية)
  • \s — أي محرف مسافة بيضاء
  • . — أي محرف باستثناء فاصل الأسطر
  • ^ — بداية النص (أو السطر، مع علامة multiline)
  • $ — نهاية النص (أو السطر، مع علامة multiline)
  • * — صفر أو أكثر من الرمز السابق
  • + — واحد أو أكثر من الرمز السابق
  • ? — صفر أو واحد من الرمز السابق
  • {n,m} — بين n و m من التكرارات
  • (...) — مجموعة التقاط، (?:...) — مجموعة بدون التقاط
  • \b — حد الكلمة، | — بديل (أو)

كيف يعمل اختبار Regex داخل المتصفح فعليًا؟

التعبير النمطي (regex) هو لغة أنماط مضغوطة لمطابقة النصوص — تصلح لكل شيء بدءًا من "هل يبدو هذا كعنوان بريد إلكتروني صحيح" مرورًا بـ"العثور على كل رقم هاتف في هذا المستند" وصولًا إلى "إزالة وسوم HTML من هذا النص". المشكلة أن صياغة regex معروفة بسهولة الوقوع في أخطاء دقيقة دون ملاحظتها: نقطة `.` كان يجب الهروب منها (escape)، رمز تكرار جشع `*` يلتهم أكثر مما قصدت، أو مجموعة التقاط لا تلتقط فعلًا ما تتوقعه. كتابة نمط "بشكل أعمى" واكتشاف خطئه فقط بعد أن يبدأ العمل على بيانات الإنتاج (production) طريقة سيئة لتعلّم هذا الدرس.

تعمل هذه الأداة بالكامل على محرك `RegExp` المدمج في جافاسكريبت نفسها، وتُنفَّذ مباشرة داخل متصفحك لحظة الكتابة — لا يوجد أي خادم في الحلقة، لذلك أي نص تختبره (سواء كان بيانات مستخدمين حقيقية، أسطر سجلات، أو أي شيء آخر لا ترغب في لصقه في خدمة خارجية) لا يغادر جهازك أبدًا. وبما أنه المحرك ذاته الذي سيُشغّل كود جافاسكريبت في بيئة الإنتاج، فإن ما تراه هنا — أي الأحرف التي تتطابق، كيف تتصرف الكميات الجشعة (greedy quantifiers)، وهل التقطت المجموعة أي شيء — هو بالضبط ما ستحصل عليه وقت التشغيل، وليس تقريبًا من نكهة (flavor) مختلفة لـ regex.

اكتب نمطًا وفعّل الأعلام (flags) التي تحتاجها: `g` للعثور على كل التطابقات بدلًا من التوقف عند الأول، `i` لمطابقة غير حساسة لحالة الأحرف، `m` لجعل `^` و `$` يطابقان بداية/نهاية كل سطر بدلًا من النص بأكمله، و`s` للسماح لـ `.` بمطابقة الأسطر الجديدة أيضًا. يُميَّز كل تطابق في نص الاختبار مباشرة أثناء الكتابة، ويُفصَّل كل تطابق أدناه إلى نصه الكامل، وموضعه، وأي مجموعات التقاط — بما في ذلك المجموعات المسماة مثل `(?<year>\d{4})` — لترى فورًا ما إذا كانت المجموعة التي تنوي استخراجها هي فعلًا التي التقطت القيمة. يعرض قسم الاستبدال بالضبط ما سينتجه `String.replace()` مع نمطك ونص الاستبدال، بما في ذلك مراجع المجموعات الخلفية مثل `$1` أو `$<year>`.

تغطي لوحة المرجع السريع أدناه الرموز التي ينساها الناس غالبًا أثناء العمل — الفرق بين `*` و`+`، فائدة مجموعة عدم الالتقاط `(?:...)`، وكيف يحدد `\b` حد الكلمة — دون الحاجة لمغادرة الصفحة للبحث عنها. بمجرد أن يتصرف نمطك بالطريقة التي تريدها مع بيانات اختبار واقعية، يصبح جاهزًا للاستخدام مباشرة في كودك. إذا احتجت إلى التحقق من صحة البيانات المحيطة أو إعادة تنسيقها، فأداتا منسّق ومدقق JSON وأداة مقارنة النصوص (Text Diff Checker) رفيقتان طبيعيتان.

الأسئلة الشائعة

هل يجمّد نمط regex سيئ الصفحة؟

لا، تعمل المطابقة في Web Worker منفصل بمهلة صارمة، فحتى النمط ذو التراجع الكارثي لا يستطيع تجميد تبويبك.

هل تعرض الأداة مجموعات الالتقاط المسماة والمرقمة؟

نعم، يعرض كل تطابق مجموعاته المرقمة وأي مجموعات مسماة مثل (?<year>\d{4}).

هل يمكنني معاينة الاستبدال قبل استخدامه في الكود؟

نعم، تعرض لوحة الاستبدال بالضبط ما سيُخرجه String.replace()، بما في ذلك الإشارات الرجعية للمجموعات.

أدوات ذات صلة