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