التابع Regexp.last_match
في روبي
يُعيد التابع 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
: يتحقق مما إذا كان التعبير النمطي مُطابقًا أم لا.