عند العمل على تغيير أجزاء معينة من الكلمات في جملة بلغة Ruby باستخدام الدالة gsub
، يمكن أن يكون التحدي في التفريق بين الأجزاء المطلوب تغييرها والأجزاء الأخرى من الكلمة. على سبيل المثال، إذا أردت تحويل “Car” إلى “cah”، فإن استخدام الشرط include?
لن يكون كافياً، حيث إنه سيؤثر على جميع الحروف “a” في الكلمة “MArthA”، مما ليس هو المطلوب.
لتجاوز هذا التحدي، يمكن استخدام تعبيرات القوالب (Regular Expressions) لتحديد بشكل أكثر دقة الأماكن التي تريد تغييرها في الكلمة. على سبيل المثال، يمكنك استخدام gsub
مع تعبيرات القوالب لتحويل “Car” إلى “cah” بالشكل التالي:
rubyuser_input.gsub!(/\bCar\b/, "cah")
هنا، \b
تعني حدود الكلمة، لذا فإن الكلمة “Car” ستستبدل فقط إذا كانت كلمة كاملة في الجملة، ولن تتأثر “Car” في “MArthA”.
بالنسبة لتحويل “Martha” إلى “Marther”، يمكن استخدام تعبيرات القوالب لاستهداف “er” فقط إذا كانت في نهاية الكلمة، مثل هذا:
rubyuser_input.gsub!(/er\b/, "her")
هنا، \b
تحدد حدود الكلمة، لذا فإن “er” ستتأثر فقط إذا كانت في نهاية الكلمة، وبالتالي لن تؤثر على “er” في “MArthA”.
باستخدام هذه الطرق، يمكنك تحقيق الاستبدال المطلوب دون التأثير على الكلمات الأخرى في الجملة.
المزيد من المعلومات
بالإضافة إلى الأمثلة المذكورة أعلاه، يمكن استخدام القدرات القوية لتعبيرات القوالب في Ruby لتحقيق الاستبدال بطرق متنوعة ومرنة. فمثلا، إذا كنت ترغب في تغيير “Car” إلى “cah” على الرغم من تواجدها في أي مكان في النص، يمكنك استخدام تعبير القالب التالي بدون الحاجة لحدود الكلمة:
rubyuser_input.gsub!("Car", "cah")
هذا التعبير سيؤثر على كل حالة لـ “Car” في النص، بغض النظر عن موضعها في الجملة.
وإذا كنت ترغب في استبدال جميع الحروف “a” بحرف آخر، مثلا “e”، يمكن استخدام الدالة gsub
مع تعبير القالب المناسب:
rubyuser_input.gsub!("a", "e")
هذا التعبير سيستبدل جميع حالات الحرف “a” بحرف “e” في النص.
علاوة على ذلك، يمكن استخدام تعبيرات القوالب لأغراض أخرى مثل إزالة الفراغات الزائدة، أو تنسيق النص بطرق محددة، أو البحث عن أنماط معينة في النص واستبدالها بقيم مخصصة.
بهذه الطرق، يُمكن استخدام تعبيرات القوالب في Ruby بمرونة لتحقيق مجموعة واسعة من العمليات على النص، مما يجعلها أداة فعّالة لإجراء تغييرات دقيقة ومخصصة على النصوص بطريقة برمجية.