التابع String.match في روبي

من موسوعة حسوب
< Ruby‏ | String

يحول التابع match النمط المُمرَّر إليه إلى تعبير نمطي (إن لم يكن كذلك) ثم يطابقه مع السلسلة النصية التي استدعيت معه.

البنية العامة

match(pattern)  matchdata or nil
match(pattern, pos)  matchdata or nil

إن أعطيت كتلة، فستُستدعَى مع الكائن MatchData المعاد إن نجحت عملية المطابقة، وبذلك يمكننا كتابة:

str.match(pat) {|m| ...}

بدلًا من:

if m = str.match(pat)
  ...
end

وستكون القيمة المعادة هي القيمة التي تعيدها الكتلة بعد انتهاء تنفيذها في هذه الحالة.

المعاملات

pattern

التعبير النمطي المراد مطابقته للسلسلة النصية المعطاة. إن يكن تعبيرًا نمطيًّا، فسيُحوَّل النمط المعطى إلى تعبير نمطي.

pos

إن أعطي هذا المعامل الاختياري، فسيُحدِّد موضع بدء عملية المطابقة في السلسلة النصية المعطاة.

القيمة المعادة

يعاد كائن من النوع MatchData يحوي القيم التي طابقها pattern في السلسلة النصية المعطاة.

أمثلة

مثال على استعمال التابع match:

'hello'.match('(.)\1')      #=> #<MatchData "ll" 1:"l">
'hello'.match('(.)\1')[0]   #=> "ll"
'hello'.match(/(.)\1/)[0]   #=> "ll"
'hello'.match(/(.)\1/, 3)   #=> nil
'hello'.match('xx')         #=> nil

انظر أيضًا

  • التابع match?‎: يحول النمط المُمرَّر إليه إلى تعبير نمطي (إن لم يكن كذلك) ثم يتحقق من مطابقته من السلسلة النصية التي استدعي معها دون تحديث قيمة المتغير ~$ والمتغيرات الأخرى المماثلة.
  • التابع gsub: يعيد نسخة من السلسلة النصية التي استدعيت معه مع تبديل قيمة (أو قيم) محدَّدة مكان جميع الأنماط المتطابقة فيها.
  • التابع replace: يستبدل محتوى السلسلة النصية التي استدعي معها بمحتوى السلسلة المُمرَّرة إليه.

مصادر