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

من موسوعة حسوب
< Ruby‏ | Regexp
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>last_match‎</code> الخاص بالصنف <code>Regexp</code> في روبي}}</noinclude> تصنيف: Ruby تص...'
 
لا ملخص تعديل
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Regexp]]
[[تصنيف: Ruby Regexp]]
يُعيد التابع <code>last_match</code> في الشكل الأول (انظر فقرة البنية العامة) كائن <code>[[Ruby/MatchData|MatchData]]</code> الذي تم إنشاؤه من آخر تطابق ناجح للنمط.  وهو مكافئ لقراءة المتغير العام المخصوص <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> الحقل رقم n في الكائن <code>[[Ruby/MatchData|MatchData]]</code>. يمكن أن يكون n عبارة عن سلسلة نصية أو رمز للإشارة إلى الالتقاط المسمى (named capture).
 
لاحظ أن <code>[[Ruby/Regexp/last_match|::last_match]]</code> هو متغير محلي في مدى التابع أو المهمة الفرعية (thread) للتابع الذي أنجز النمط.
في الشكل الثاني، يعيد التابع <code>last_match</code> الحقل رقم <code>n</code> في الكائن <code>[[Ruby/MatchData|MatchData]]</code>. يمكن أن يكون <code>n</code> عبارة عن سلسلة نصية أو رمزًا للإشارة إلى الالتقاط المسمى (named capture).
 
لاحظ أن <code>[[Ruby/Regexp/last_match|last_match]]</code> هو متغير محلي في مدى (scope) التابع أو المهمة الفرعية (thread) للتابع الذي أنجز النمط.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">last_match  → matchdata
<syntaxhighlight lang="ruby">last_match  → matchdata
سطر 11: سطر 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>.


==أمثلة==
==أمثلة==
سطر 27: سطر 30:
Regexp.last_match(:rhs) #=> "val"‎</syntaxhighlight>
Regexp.last_match(:rhs) #=> "val"‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Regexp/escape|escape]]</code>: يُخلّص (Escapes)  أي حرف يمكن أن يكون له معنى خاص في التعبير النمطي. ثم يعيد سلسلة نصية جديدة مُخلّصة، أو يعيد الكائن  (self) في حال عدم تخليص أي أحرف.  لكل سلسلة نصية str، ستكون قيمة <code>Regexp.new(Regexp.escape( str ))=~ str</code> مساوية للقيمة true.
* التابع <code>[[Ruby/Regexp/match|match]]</code>: يتحقق مما إذا كان التعبير النمطي مُطابقا أم لا.
* التابع <code>[[Ruby/Regexp/new|new]]</code>: ينشئ  تعبيرًا نمطيًا جديدًا من <code>pattern</code>، والذي يمكن أن يكون إما سلسلة نصية (<code>[[Ruby/String|String]]</code>) أو كائنًا من النوع <code>[[Ruby/Regexp|Regexp]]</code> (وفي هذه الحالة يتم نشر خيارات التعبير النمطي)، وقد لا يتم تحديد خيارات جديدة (منذ روبي 1.8).


==مصادر==
==مصادر==
*[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‎ في توثيق روبي الرسمي.]

مراجعة 21:46، 31 أكتوبر 2018

يُعيد التابع last_match في الشكل الأول (انظر فقرة البنية العامة) كائنَ MatchData الذي تم إنشاؤه من آخر تطابق (match) ناجح للنمط. وهو مكافئ لقراءة المتغير العام ‎$~‎ (راجع المتغيرات العامة المخصوصة في صفحة Regexp لمزيد من التفاصيل).

في الشكل الثاني، يعيد التابع last_match الحقل رقم n في الكائن MatchData. يمكن أن يكون n عبارة عن سلسلة نصية أو رمزًا للإشارة إلى الالتقاط المسمى (named capture).

لاحظ أن last_match هو متغير محلي في مدى (scope) التابع أو المهمة الفرعية (thread) للتابع الذي أنجز النمط.

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

last_match   matchdata
last_match(n)   str

المعاملات

n‎

سلسلة نصية أو رمز.

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

يُعيد التابع last_match في الشكل الأول كائنَ MatchData الذي تم إنشاؤه من آخر تطابق (match) ناجح للنمط. وفي الشكل الثاني، يعيد الحقل رقم 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: يتحقق مما إذا كان التعبير النمطي مُطابقا أم لا.

مصادر