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

من موسوعة حسوب
< Ruby‏ | Regexp
مراجعة 05:43، 4 ديسمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يُعيد التابع last_match إن لم يمرَّر إليه أي شيء كائنًا من النوع MatchData الذي تم إنشاؤه من آخر تطابق (match) ناجح للنمط. وهو مكافئ لقراءة المتغير العام ‎$~‎ (راجع قسم المتغيرات العامة المخصصة في صفحة Regexp لمزيد من التفاصيل).

أمَّا إن مرِّر إلى التابع last_match عدد n، فسيعيد المطابقة ذات الرقم n في الكائن MatchData. يمكن أن يكون n عبارة عن سلسلة نصية أو رمزًا للإشارة إلى الالتقاط المسمى (named capture).

لاحظ أن last_match هو متغير محلي في مدى (scope) التابع أو المهمة الفرعية (thread) للتابع الذي أنجز النمط.

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

last_match   matchdata
last_match(n)   str

المعاملات

n‎

عدد صحيح أو سلسلة نصية أو رمز.

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

إن لم يمرَّر المعامل n، فسيعاد كائنٌ من النوع MatchData الذي تم إنشاؤه من آخر تطابق (match) ناجح للنمط. أمَّا إن مُرر المعامل n، فسيعاد التطابق ذو الرقم n في الكائن MatchData.

أمثلة

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

/c(.)t/ =~ 'cat'        #=> 0
Regexp.last_match       #=> #<MatchData "cat" 1:"a">
Regexp.last_match(0)    #=> "cat"
Regexp.last_match(1)    #=> "a"
Regexp.last_match(2)    #=> nil
/(?<lhs>\w+)\s*=\s*(?<rhs>\w+)/ =~ "var = val"
Regexp.last_match       #=> #<MatchData "var = val" lhs:"var" rhs:"val">
Regexp.last_match(:lhs) #=> "var"
Regexp.last_match(:rhs) #=> "val"‎

انظر أيضًا

  • التابع match: يتحقق مما إذا كان التعبير النمطي مُطابقًا أم لا.

مصادر