الفرق بين المراجعتين لصفحة: «Ruby/Regexp/last match»

من موسوعة حسوب
< Ruby‏ | Regexp
لا ملخص تعديل
ط مراجعة وتدقيق.
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>last_match‎</code> الخاص بالصنف <code>Regexp</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: التابع <code>Regexp.last_match‎</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Regexp]]
[[تصنيف: Ruby Regexp]]
يُعيد التابع <code>last_match</code> في الشكل الأول (انظر فقرة البنية العامة) كائنَ <code>[[Ruby/MatchData|MatchData]]</code> الذي تم إنشاؤه من آخر تطابق (match) ناجح للنمط. وهو مكافئ لقراءة المتغير العام ‎<code>$~‎</code> (راجع المتغيرات العامة المخصوصة في صفحة <code>[[Ruby/Regexp|Regexp]]</code> لمزيد من التفاصيل).
يُعيد التابع <code>last_match</code> إن لم يمرَّر إليه أي شيء كائنًا من النوع <code>[[Ruby/MatchData|MatchData]]</code> الذي تم إنشاؤه من آخر تطابق (match) ناجح للنمط. وهو مكافئ لقراءة المتغير العام ‎<code>$~‎</code> (راجع قسم المتغيرات العامة المخصصة في صفحة <code>[[Ruby/Regexp|Regexp]]</code> لمزيد من التفاصيل).


في الشكل الثاني، يعيد التابع <code>last_match</code> الحقل رقم <code>n</code> في الكائن <code>[[Ruby/MatchData|MatchData]]</code>. يمكن أن يكون <code>n</code> عبارة عن سلسلة نصية أو رمزًا للإشارة إلى الالتقاط المسمى (named capture).
أمَّا إن مرِّر إلى التابع <code>last_match</code> عدد <code>n</code>، فسيعيد المطابقة ذات الرقم <code>n</code> في الكائن <code>[[Ruby/MatchData|MatchData]]</code>. يمكن أن يكون <code>n</code> عبارة عن سلسلة نصية أو رمزًا للإشارة إلى الالتقاط المسمى (named capture).


لاحظ أن <code>[[Ruby/Regexp/last_match|last_match]]</code> هو متغير محلي في مدى (scope) التابع أو المهمة الفرعية (thread) للتابع الذي أنجز النمط.
لاحظ أن <code>last_match</code> هو متغير محلي في مدى (scope) التابع أو المهمة الفرعية (thread) للتابع الذي أنجز النمط.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">last_match  → matchdata
<syntaxhighlight lang="ruby">last_match  → matchdata
سطر 13: سطر 13:
==المعاملات==
==المعاملات==
===<code>n‎</code>===
===<code>n‎</code>===
سلسلة نصية أو رمز.
عدد صحيح أو سلسلة نصية أو رمز.


==القيمة المُعادة==
==القيمة المعادة==
يُعيد التابع <code>last_match</code> في الشكل الأول كائنَ <code>[[Ruby/MatchData|MatchData]]</code> الذي تم إنشاؤه من آخر تطابق (match) ناجح للنمط. وفي الشكل الثاني، يعيد الحقل رقم <code>n</code> في الكائن <code>[[Ruby/MatchData|MatchData]]</code>.
إن لم يمرَّر المعامل <code>n</code>، فسيعاد كائنٌ من النوع <code>[[Ruby/MatchData|MatchData]]</code> الذي تم إنشاؤه من آخر تطابق (match) ناجح للنمط. أمَّا إن مُرر المعامل <code>n</code>، فسيعاد التطابق ذو الرقم <code>n</code> في الكائن <code>[[Ruby/MatchData|MatchData]]</code>.


==أمثلة==
==أمثلة==
سطر 29: سطر 29:
Regexp.last_match(:lhs) #=> "var"
Regexp.last_match(:lhs) #=> "var"
Regexp.last_match(:rhs) #=> "val"‎</syntaxhighlight>
Regexp.last_match(:rhs) #=> "val"‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضًا==
* التابع <code>[[Ruby/Regexp/match|match]]</code>: يتحقق مما إذا كان التعبير النمطي مُطابقا أم لا.
* التابع <code>[[Ruby/Regexp/match|match]]</code>: يتحقق مما إذا كان التعبير النظامي مُطابقًا أم لا.


==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Regexp.html#method-c-last_match قسم التابع last_match‎ في الصنف Regexp‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Regexp.html#method-c-last_match قسم التابع last_match‎ في الصنف Regexp‎ في توثيق روبي الرسمي.]

مراجعة 14:19، 3 ديسمبر 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: يتحقق مما إذا كان التعبير النظامي مُطابقًا أم لا.

مصادر