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