0Pricing
Ruby Academy · درس

البحث والاستبدال

gsub وsub وmatch

البحث والاستبدال درس مجاني في Ruby Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ruby Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ruby Academy 4 دروس في المجموع.

العثور على سلسلة فرعية

تعيد الطريقة index موضع أول تطابق، أو nil إذا لم يُعثر عليه. وتعيد include? القيمة true أو false.

text = "hello world"
puts text.index("world")
puts text.include?("world")

استبدال أول تطابق باستخدام sub

تستبدل sub التكرار الأول لنمط ما بقيمة جديدة فقط.

text = "cat cat cat"
puts text.sub("cat", "dog")

استبدال جميع التطابقات باستخدام gsub

تعني gsub الاستبدال العام، إذ تستبدل كل تكرار.

text = "cat cat cat"
puts text.gsub("cat", "dog")

استخدام التعبيرات النمطية

الأنماط المحاطة بشرطتين مائلتين، مثل /.../، هي تعبيرات نمطية. يطابق /\d/ رقمًا واحدًا. وتقبل طريقتا gsub وsub أنماط التعبيرات النمطية.

text = "a1b2c3"
puts text.gsub(/\d/, "*")

المطابقة باستخدام match?

تعيد match? القيمة true إذا طابق تعبير نمطي أي موضع في السلسلة النصية. وهي طريقة سريعة وواضحة لإجراء عمليات التحقق.

email = "ada@ruby.org"
puts email.match?(/@/)
puts "no at sign".match?(/@/)

التقاط التطابقات باستخدام match

تعيد match كائن MatchData. يشير الفهرس [0] إلى التطابق الكامل، بينما تنشئ الأقواس مجموعات التقاط يمكن الوصول إليها باستخدام [1] و[2] وما إلى ذلك.

data = "2024-05-30"
m = data.match(/(\d+)-(\d+)-(\d+)/)
puts m[1]
puts m[2]

استخدام scan للعثور على جميع التطابقات

تعيد scan مصفوفة تضم كل تطابق في السلسلة النصية. وهي مثالية لاستخراج جميع الأرقام أو الكلمات.

text = "phone 555 and 777"
puts text.scan(/\d+/).inspect

المراسي

تثبت المراسي التطابق في موضع محدد. تعني ^ بداية السطر، وتعني $ نهايته. ويثبت كل من \A و\z التطابق عند طرفَي السلسلة النصية بالكامل.

puts "hello".match?(/^hel/)
puts "hello".match?(/llo$/)
puts "hello".match?(/^world/)

فئات المحارف

تحدد الأقواس المربعة مجموعة المحارف المسموح بها. يطابق [aeiou] أي حرف علّة. ويطابق [a-z] أي حرف إنجليزي صغير.

text = "Ruby"
puts text.gsub(/[aeiou]/i, "_")

الكتل في gsub

مرّروا كتلة إلى gsub لتحويل كل تطابق ديناميكيًا. ويكون النص المتطابق هو وسيطة الكتلة.

text = "one two"
result = text.gsub(/\w+/) { |w| w.upcase }
puts result

البحث غير الحساس لحالة الأحرف

تجعل العلامة i بعد التعبير النمطي المطابقة غير حساسة لحالة الأحرف.

text = "Hello HELLO hello"
puts text.gsub(/hello/i, "hi")

فحص سريع

اختبروا مهاراتكم في البحث والاستبدال.

مراجعة

يمكنكم الآن البحث عن النص واستبداله:

  • استخدام index وinclude? وmatch? للعثور على النص
  • استخدام sub للاستبدال الأول وgsub لاستبدال الكل
  • استخدام أنماط التعبيرات النمطية والمراسي وفئات المحارف
  • استخدام scan لاستخراج جميع التطابقات، والكتل للاستبدال الديناميكي

التالي: تقسيم السلاسل النصية وضمّها.

puts "a,b,c".gsub(",", " | ")

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

هل درس «البحث والاستبدال» مجاني؟

نعم — نص درس «البحث والاستبدال» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ruby Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ruby Academy 4 دروس في المجموع.

ماذا ستتعلم في «البحث والاستبدال»؟

gsub وsub وmatch تتمرن على Ruby Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Ruby Academy؟

لا تُشترط خبرة سابقة. Ruby Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «البحث والاستبدال»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Ruby Academy هذا؟

نعم. كل درس في Ruby Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساسيات String ودوالها
  2. الإقحام والتنسيق
  3. البحث والاستبدال
  4. التقسيم والضم
← العودة إلى Ruby Academy