برنامج تعليمي للمبتدئين للتعبيرات العادية

التعبيرات العادية، والتي غالبًا ما يتم اختصارها بـ regex أو regexp، هي تسلسلات من الأحرف التي تحدد نمط البحث. يتم استخدامها بشكل شائع لمطابقة السلسلة واستبدال السلاسل الفرعية واستخراج المعلومات من النص.

لماذا نتعلم التعبيرات العادية؟

يمكن أن يؤدي تعلم التعبيرات العادية إلى تعزيز قدرتك على التعامل مع البيانات النصية بشكل كبير. مع regex، يمكنك:

  • البحث عن أنماط محددة داخل النص.
  • التحقق من صحة بيانات الإدخال مثل عناوين البريد الإلكتروني وأرقام الهواتف.
  • استخراج أجزاء معينة من النص، مثل التواريخ وعناوين URL.
  • استبدال السلاسل الفرعية داخل النص بناءً على الأنماط.

المكونات الأساسية للتعبيرات العادية

يتكون Regex من أحرف حرفية وأحرف وصفية. فيما يلي بعض المكونات الأساسية:

  • الأحرف الحرفية: الأحرف المطابقة لنفسها. على سبيل المثال، a يطابق "a".
  • الأحرف الأولية: أحرف خاصة ذات معاني محددة، مثل . و * و + و ?.

الأحرف الأولية الشائعة ومعانيها

يعد فهم الأحرف الأولية أمرًا أساسيًا لإتقان التعبير العادي. وفيما يلي بعض من الأكثر استخداما:

  • . - يطابق أي حرف واحد باستثناء السطر الجديد.
  • * - يطابق 0 أو أكثر من تكرار العنصر السابق.
  • + - يطابق تكرارًا واحدًا أو أكثر للعنصر السابق.
  • ? - يطابق 0 أو 1 تكرار للعنصر السابق.
  • [] - يطابق أيًا من الأحرف الموجودة داخل الأقواس.
  • {} - يحدد عددًا محددًا من تكرارات العنصر السابق.
  • () - يقوم بتجميع الرموز المميزة معًا وإنشاء مجموعات التقاط.
  • | - يعمل كمشغل OR.

أنماط Regex الأساسية مع الأمثلة

دعونا نلقي نظرة على بعض أنماط regex الأساسية وكيفية عملها:

cat

يطابق السلسلة الدقيقة "cat".

.at

يطابق أي سلسلة تحتوي على حرف واحد متبوعًا بـ "at"، مثل "cat"، "bat"، "hat".

\d{3}

يتطابق تمامًا مع ثلاثة أرقام، مثل "123"، "456"، "789".

[a-z]

يطابق أي حرف صغير من "a" إلى "z".

(dog|cat)

يطابق إما "dog" أو "cat".

استخدام Regex في لغات البرمجة

يتم دعم التعبيرات العادية على نطاق واسع في لغات البرمجة المختلفة. فيما يلي أمثلة لاستخدام regex في Python وJavaScript:

مثال بايثون

import re

# Search for 'dog' in a string
pattern = r'dog'
text = 'The dog barked loudly.'
match = re.search(pattern, text)

if match:
    print('Match found:', match.group())
else:
    print('No match found')

مثال جافا سكريبت

// Search for 'dog' in a string
const pattern = /dog/;
const text = 'The dog barked loudly.';
const match = text.match(pattern);

if (match) {
    console.log('Match found:', match[0]);
} else {
    console.log('No match found');
}

خاتمة

تعد التعبيرات العادية أداة قوية لأي شخص يتعامل مع معالجة النصوص. من خلال فهم المكونات والأنماط الأساسية وممارستها، يمكنك تحسين قدرتك بشكل كبير على التعامل مع النص ومعالجته في مشاريع البرمجة الخاصة بك. قم بتجربة أنماط مختلفة وتعميق معرفتك لفتح الإمكانات الكاملة للتعبير العادي.