تظهر التطابقات هنا — الفهارس، المجموعات الملتقطة، والعدّادات مباشرةً.
ما هي أداة اختبار Regex؟
أداة اختبار Regex تتيح لك كتابة تعبير نمطي ورؤية ما يطابقه فورًا داخل نص تجريبي. يستخدم المطورون التعابير النمطية (Regular Expressions) للتحقق من المدخلات، واستخراج البيانات من النصوص، والبحث في ملفات السجلات (logs)، وتنظيف النصوص، وكتابة أوامر داخل المحررات، وقواعد البحث والاستبدال.
تبدو الـ regex غامضة في البداية لأن قلة من الرموز تحمل معاني كثيرة. لكن أداة الاختبار الحيّة تكشف الغموض: كل حرف تكتبه يُحدِّث النتائج المُبرَزة ومجموعات الالتقاط، فتتمكن من التجربة حتى يعمل النمط بالضبط كما تريد.
تختلف لغات البرمجة قليلًا في محركات الـ regex (JavaScript، PCRE، Python، Java، Go، .NET)، لكن الأساسيات — الأحرف، وفئات الأحرف، والمكمّمات (quantifiers)، والمراسي (anchors)، والمجموعات — تعمل في كل مكان. الاختلافات الحقيقية تظهر في الميزات المتقدمة مثل lookbehind، والمجموعات المسمّاة (named groups)، والمكمّمات المُلكيّة (possessive quantifiers).
ما الذي ستتعلمه أثناء تجربة Regex
النمط يصف *شكل* النص، لا معناه. فمثلًا \d+ يطابق سلسلة من الأرقام، لكنه لا يعرف هل الرقم منطقي أم لا.
الـ flags تغيّر السلوك: g تجد كل النتائج، i تتجاهل حالة الأحرف، m تجعل ^ و $ تعمل على بداية ونهاية كل سطر، و s تسمح للنقطة . بمطابقة سطر جديد.
مجموعات الالتقاط (...) تستخرج أجزاء من المطابقة، لا تكتفي بالتأكد من تطابق النص كاملًا — وهذا أساسي عند تحليل النصوص.
كيف تستخدم أداة اختبار Regex خطوة بخطوة
1
اكتب النمط
أدخل التعبير النمطي في حقل النمط. لا تضع الشرطتين المائلتين / المحيطتين به — فهذه صياغة literal خاصة بـ JavaScript وليست جزءًا من النمط نفسه.
2
فعّل الـ flags التي تحتاجها
في الغالب ستحتاج g (لإيجاد كل المطابقات) و i (لتجاهل حالة الأحرف). استخدم m للمراسي على مستوى السطر، و s لجعل النقطة . تطابق أسطرًا جديدة.
3
ألصق النص الذي تريد اختباره
ضع نصًا تجريبيًا في مساحة الاختبار. ستُبرَز المطابقات أثناء الكتابة، وستظهر مجموعات الالتقاط أسفل قائمة النتائج.
4
اقرأ لوحة النتائج
تعرض كل مطابقة موقعها، ونصها الكامل، وأي مجموعات تم التقاطها. استخدم هذه المعلومات للتأكد من أن النمط يلتقط ما تريده ويتجاهل ما لا تريده.
5
حسّن النمط حتى يصبح دقيقًا
ضيّق المكمّمات، وأضِف مراسي (^، $)، أو هرّب الأحرف الحرفية (\.، \?) حتى تصير المطابقات والمجموعات مطابقة تمامًا لما يحتاجه كودك.
ورقة Regex المرجعية
الـ 80% من الـ regex التي ستستخدمها في 99% من الحالات. احفظ هذه الصفحة في المفضّلة — أسرع طريقة لاستذكار الصياغة. وللاطلاع على القواعد الكاملة، راجع دليل MDN للتعابير النمطية.
الرمز
المعنى
مثال
.
أي حرف واحد (ما عدا السطر الجديد)
a.c يطابق abc و a-c
\d\D
رقم / غير رقم
\d+ يطابق 123
\w\W
حرف كلمة (حرف/رقم/_) / غير ذلك
\w+ يطابق hello_1
\s\S
مسافة بيضاء / غير مسافة
\s+ يطابق المسافات وعلامات Tab
[abc]
أي من a أو b أو c
[aeiou] يطابق حرف علّة
[^abc]
ليس a ولا b ولا c
[^0-9] يطابق غير الأرقام
*+?
صفر فأكثر / واحد فأكثر / صفر أو واحد من السابق
a+ يطابق a و aaa
{n}{n,m}
n بالضبط / بين n و m
\d{3,5} من 3 إلى 5 أرقام
^$
بداية / نهاية النص (أو السطر مع m)
^Error السطر يبدأ بـ Error
(...)
مجموعة التقاط
(\d+) يلتقط الأرقام
(?:...)
مجموعة بدون التقاط
(?:foo|bar) تجميع دون التقاط
a|b
تبديل — a أو b
yes|no
\b
حدّ كلمة
\bcat\b يطابق cat لا cats
أمثلة Regex جاهزة للتجربة
مطابقة الشكل الأساسي للبريد الإلكتروني
النمط
^[\w.+-]+@[\w-]+\.[\w.-]+$
النص
learner@coddy.tech
هذا النمط يلتقط الشكل الأساسي شيء@شيء.شيء. التحقق الفعلي من البريد الإلكتروني في الواقع أكثر مرونة بكثير — في النماذج، الأفضل استخدام type="email" مع تحقق من جانب الخادم.
استخراج كل الأرقام من جملة
النمط
\d+
النص
Lesson 12 has 3 tasks and 2 quizzes.
مع الـ flag g، سيجد هذا النمط كل سلسلة أرقام: 12 و 3 و 2. الـ \d+ هو المكافئ النمطي لعبارة "رقم واحد أو أكثر".
استخراج معرّف من رابط باستخدام مجموعة التقاط
النمط
/users/(\d+)
النص
/users/42/profile
المطابقة الكاملة هي /users/42، أما مجموعة الالتقاط (\d+) فتستخرج فقط 42. مجموعات الالتقاط هي الطريقة التي *تستفيد* بها فعلًا من نتيجة الـ regex داخل الكود.
المكمّمات الجشعة مقابل الكسولة
جشِع
<.+>
كسول
<.+?>
النص
<b>hello</b>
النسخة الجشعة تطابق النص بأكمله <b>hello</b> لأن .+ يلتهم أكبر قدر ممكن. أما النسخة الكسولة (+?) فتتوقف عند أول >، فتطابق <b> و </b> فقط.
كتابة نمط ينجح مع عيّنة واحدة، ثم يفشل مع نص واقعي فيه مسافات زائدة أو أسطر جديدة أو حقول ناقصة.
استخدام .* بشكل جشِع فيلتقط أكثر بكثير ممّا تريد — استبدله بـ .*? أو بفئة أحرف أكثر تحديدًا.
أسئلة شائعة حول Regex
ما هي الـ regex؟
Regex اختصار لـ *regular expression* (تعبير نمطي) — وهي لغة أنماط مختصرة لمطابقة النصوص. الفكرة نفسها موجودة في معظم لغات البرمجة وفي كثير من المحررات وأدوات سطر الأوامر.
كيف أكتب تعبيرًا نمطيًا؟
ابدأ بالأحرف الحرفية التي تريد مطابقتها، ثم استبدل الأجزاء المتغيّرة بفئات أحرف (\d، \w، [abc]) ومكمّمات (*، +، ?، {n,m}). استخدم أداة اختبار regex وكرّر التعديل حتى يطابق النمط الحالات التي تريدها بدقّة.
ماذا يعني \w في Regex؟
\w يطابق حرف كلمة — أي حرفًا أبجديًا أو رقمًا أو شرطة سفلية (_). أما \W فهو العكس (أي حرف ليس من حروف الكلمات). والمجموعة الدقيقة تعتمد على المحرّك وعلى تفعيل دعم Unicode.
لماذا يطابق نمطي أكثر مما أريد؟
المكمّمات افتراضيًا جشعة — .* يطابق أكبر قدر ممكن. حوّلها إلى مكمّم كسول (.*?)، أو استخدم فئة أحرف أكثر تحديدًا لتتوقّف عند الموضع الذي تريده.
هل regex في JavaScript مطابقة لباقي اللغات؟
الأساسيات واحدة، لكن المحركات مختلفة. JavaScript، و PCRE، و re في Python، و Java، و Go، و .NET، يدعم كلٌّ منها flags وميزات متقدمة مختلفة قليلًا (دعم lookbehind، والمجموعات المسمّاة، والمكمّمات الملكيّة).
هل يجب على المبتدئين تعلّم Regex؟
نعم — لكن تدريجيًا. ابدأ بالأحرف الحرفية، وفئات الأحرف، والمكمّمات، والمراسي، والـ flags، ومجموعات الالتقاط. واترك lookarounds، والمجموعات المسمّاة، والـ regex الشرطي إلى مرحلة لاحقة.