ATM Logo
ATMATM Team

© 2025 ATM. جميع الحقوق محفوظة

RegEX

RegEX
Author's profile picture
ATM

10/12/2025

ماهي RegeX ؟

• هي لغة قياسيّة لوصف العلاقة بين العناصر (حروف – أرقام – رموز) من توال وتكرار، والتي تطبّق على نص معيّن لاستخراج الجزء المتطابق مع التّعبير النّمطي (داخل عبارة RegeX).
• بعبارة أخرى أسهل، هي طريقة فعّالة وقوية للغاية للبحث في سلسلة نصّية.
لماذا نستعمل RegeX؟ (أهم استعمالين)
• إجراء عمليات التحقق من مطابقة شروط معيّنة (التحقق من صحة كتابة الإيميل مثلا، كلمة المرور ، الخ)
• الحصول على أجزاء من النص لإجراء عملية "بحث واستبدال" متقدّمة. تنفعك بشدة في حال التعامل مع بيانات ضخمة أو متغيرة أو شديدة الحساسيّة.
ومنه فإننا نرى أن RegeX تستعمل في كل مجالات البرمجة والبيانات والأمن السيبراني.
شكل RegeX:
تكتب من الشكل التّالي: تبدأ وتنتهي بـ / ثمّ تأتي flags من المجموعة {g, i, m, s, u, y, … } (سنأتي لمدلولها في النقطة التالية).
بين / البداية و / النهاية نكتب عبارتنا والتي تحتوي العديد من الرموز التي تحدد النمط المختار، سنتعرف عليها بالتدريج فلا تقلقوا.
• مثال: / at /g
• مثال: / .es+ /g
• مثال: / [fc]at*@ {4,6} /g
• مثال: /(t|r|e){2,3}\.$/i
• مثال: / (?<countyCode>\+\d{1,3}[ -])? (\d{3}) \)? [ -]? (\d{3})[ -]? (\d{4}) /gm
المؤشرات flags:
• g: global عند استعمال هذا المؤشر، البحث والمطابقة ستتم على كل السلسلة النصية (النّص)، أمّا عند عدم استعماله فالعمليّة ستتوقف عند أول مطابقة.
o مثال في نصّ ذكر فيه 5 مرات كلمة "the"، بعدم استعمالك للمؤشر g ستحصل فقط على كلمة “the” واحدة فقط وهي التي كانت الألى في الترتيب. First occurrence
• I: case insensitive عند استعمال هذا المؤشر، فلن يكون هناك فرق بين المطابقة بين T و t مثلا. كلها ستعتبر شيئا واحدا.
• m: multiline عند استعمال هذا المؤشر، فـ RegeX ستتعامل مع النصّ كل سطر على حدا. عند عدم استعماله فسيعتبر النص كسطر واحد (في بعض الحالات يؤثر على المطابقة – استعماله من عدمه يفرق في النّتيجة)
• s: single line (dotall) هنا، عند استعمالك لهذا المؤشر واستعمالك النقطة "." (ستتعرف عليها لاحقا) ، هنا ستطابق النقطة (.) أي حرف ، بما في ذلك السطر الجديد \n.
• u: Unicode . عند استعماله، فإنه يتيح لك مجال أكبر للتعامل مع الرموز (حروف – أرقام – ايموجي ...) خاصة الجديدة منها والمشفرة بـ 4 bytes بدلا من 2 bytes (كما حال الحروف العادية). كما يسمح لك المؤشر باستعمال البحث بواسطة خاصية معينة للرمز \p{…} (حروف – أرقام – الخ) ]لفهمه أكثر طالع الرابط في التعليقات[
• كما توجد مؤشرات أخرى ندعوكم للبحث عنها أكثر كـ y: sticky، x: extended، A: Anchored، الخ
اختصارات عمليّة وتريكّات لكتابة عبارات RegeX.
الــــ Méta-characters & Character Classes & Anchors
1. \d: وتعني Digit أي رقم. هي مرادفة [0-9]، أي يمكنك استعمالها مكانها للاختصار. عكسها \D وهي Not digit أي كل رمز من غير الأرقام.
1. \w: وتعني word أي كلمة. وهي مرادفة لـ [A-Za-z] مثلا. عكسها \W أي Not word
1. \s: وتعني white space. عكسها \S كل رمز ماعدا white space.
1. \x: تعني رقم من القاعدة 16. Hexadecimal
1. \O: تعني رقم من القاعدة 8. Octal
1. ^: وتعني بداية السلسلة النصّية. أو بداية السطر في حال استعمال المؤشّر m (multiline)