الفرق بين المراجعتين لصفحة: «Ruby/Regexp/last match»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
| سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: التابع <code>last_match | <noinclude>{{DISPLAYTITLE: التابع <code>Regexp.last_match</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Regexp]] | [[تصنيف: Ruby Regexp]] | ||
يُعيد التابع <code>last_match</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>n</code> في الكائن <code>[[Ruby/MatchData|MatchData]]</code>. يمكن أن يكون <code>n</code> عبارة عن سلسلة نصية أو رمزًا للإشارة إلى الالتقاط المسمى (named capture). | |||
لاحظ أن <code> | لاحظ أن <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>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 قسم | *[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: يتحقق مما إذا كان التعبير النظامي مُطابقًا أم لا.