التابع last_match‎ الخاص بالصنف Regexp في روبي

من موسوعة حسوب
< Ruby‏ | Regexp
مراجعة 21:41، 31 أكتوبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>last_match‎</code> الخاص بالصنف <code>Regexp</code> في روبي}}</noinclude> تصنيف: Ruby تص...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

يُعيد التابع last_match في الشكل الأول (انظر فقرة البنية العامة) كائن MatchData الذي تم إنشاؤه من آخر تطابق ناجح للنمط. وهو مكافئ لقراءة المتغير العام المخصوص $~ (راجع المتغيرات العامة المخصوصة في صفحة Regexp لمزيد من التفاصيل). في الشكل الثاني، يعيد التابع last_match الحقل رقم n في الكائن MatchData. يمكن أن يكون n عبارة عن سلسلة نصية أو رمز للإشارة إلى الالتقاط المسمى (named capture). لاحظ أن ::last_match هو متغير محلي في مدى التابع أو المهمة الفرعية (thread) للتابع الذي أنجز النمط.

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

last_match   matchdata
last_match(n)   str

المعاملات

n‎

عدد صحيح

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

أمثلة

مثال على استخدام التابع 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"‎

انظر أيضا

  • التابع escape: يُخلّص (Escapes) أي حرف يمكن أن يكون له معنى خاص في التعبير النمطي. ثم يعيد سلسلة نصية جديدة مُخلّصة، أو يعيد الكائن (self) في حال عدم تخليص أي أحرف. لكل سلسلة نصية str، ستكون قيمة Regexp.new(Regexp.escape( str ))=~ str مساوية للقيمة true.
  • التابع new: ينشئ تعبيرًا نمطيًا جديدًا من pattern، والذي يمكن أن يكون إما سلسلة نصية (String) أو كائنًا من النوع Regexp (وفي هذه الحالة يتم نشر خيارات التعبير النمطي)، وقد لا يتم تحديد خيارات جديدة (منذ روبي 1.8).

مصادر