التابع Regexp.match‎ في روبي

من موسوعة حسوب
< Ruby‏ | Regexp
اذهب إلى التنقل اذهب إلى البحث
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

يُعيد التابع match كائنًا من النوع MatchData يصف المطابقة بين تعبير نمطي وسلسلة نصية، أو يعيد القيمة nil إذا لم يكن هناك تطابق. هذا يُكافئ استرداد قيمة المتغير الخاص ‎$~‎ بعد تنفيذ عملية مطابقة عادية. في حال تمرير المعامل الثاني، فسيحدد موضع البدء في السلسلة النصية.

/(.)(.)(.)/.match("abc")[2]   #=> "b"
/(.)(.)/.match("abc", 1)[2]   #=> "c"‎

في حال تمرير كتلة، فسيستدعي الكتلة باستخدام MatchData إذا نجحت المطابقة، وهكذا يمكنك كتابة:

/M(.*)/.match("Matz") do |m|
  puts m[0]
  puts m[1]
end

بدلًا من:

if m = /M(.*)/.match("Matz")
  puts m[0]
  puts m[1]
end

في هذه الحالة، القيمة المعادة هي القيمة الناتجة عن تنفيذ الكتلة.

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

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

المعاملات

str‎

سلسلة نصية يراد مطابقتها مع تعبير نمطي.

pos‎

موضع البدء.

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

يعاد كائنٌ من النوع MatchData يصف المطابقة، أو تعاد القيمة nil إذا لم يكن هناك تطابق.

أمثلة

مثال على استخدام التابع match‎:

/(.)(.)(.)/.match("abc")[2]   #=> "b"
/(.)(.)/.match("abc", 1)[2]   #=> "c"‎

انظر أيضًا

  • التابع match?‎: يتحقق ما إذا كان التعبير النمطي المعطى قد تطابق (matched) أم لا دون تحديث المتغير ‎$~‎ والمتغيرات الأخرى ذات الصلة.

مصادر