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

من موسوعة حسوب
< Ruby‏ | Regexp
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>match‎</code> الخاص بالصنف <code>Regexp</code> في روبي}}</noinclude> تصنيف: Ruby تصني...'
 
لا ملخص تعديل
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Regexp]]
[[تصنيف: Ruby Regexp]]
يُعيد التابع <code>match</code> كائنًا من النوع <code>MatchData</code> يصف المطابقة، أو يعيد <code>nil</code> إذا لم يكن هناك تطابق. هذا يُكافئ استرداد قيمة المتغير الخاص <code>$~</code> بعد مطابقة عادية. في حال تمرير الوسيط الثاني،، فإنه يحدد الموضع في السلسلة النصية لبدء البحث.
يُعيد التابع <code>match</code> كائنًا من النوع <code>MatchData</code> يصف المطابقة، أو يعيد <code>nil</code> إذا لم يكن هناك تطابق. هذا يُكافئ استرداد قيمة المتغير الخاص <code>$~</code> بعد مطابقة عادية. في حال تمرير الوسيط الثاني،، فسيحدد موضع البدء في السلسلة النصية.<syntaxhighlight lang="ruby">/(.)(.)(.)/.match("abc")[2]  #=> "b"
 
/(.)(.)/.match("abc", 1)[2]  #=> "c"‎</syntaxhighlight>
في حال تمرير كتلة، قسيستدعي الكتلة باستخدام <code>[[Ruby/MatchData|MatchData]]</code> إذا نجحت المطابقة، هكذا يمكنك كتابة:
في حال تمرير كتلة، قسيستدعي الكتلة باستخدام <code>[[Ruby/MatchData|MatchData]]</code> إذا نجحت المطابقة، وهكذا يمكنك كتابة:<syntaxhighlight lang="ruby">/M(.*)/.match("Matz") do |m|
 
  puts m[0]
بدلًا من:
  puts m[1]
 
end</syntaxhighlight>
قيمة المعادة هي قيمة ناتجة عن تنفيذ الكتلة في هذه الحالة.
بدلًا من:<syntaxhighlight lang="ruby">if m = /M(.*)/.match("Matz")
  puts m[0]
  puts m[1]
end</syntaxhighlight>
في هذه الحالة، القيمة المعادة هي القيمة الناتجة عن تنفيذ الكتلة.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">match(str) → matchdata or nil
<syntaxhighlight lang="ruby">match(str) → matchdata or nil
سطر 17: سطر 21:
سلسلة نصية.
سلسلة نصية.
===<code>pos‎</code>===
===<code>pos‎</code>===
موضع البدء.


==القيمة المُعادة==
==القيمة المُعادة==
يُعيد التابع <code>match</code> كائنًا من النوع <code>MatchData</code> يصف المطابقة، أو يعيد <code>nil</code> إذا لم يكن هناك تطابق.


==أمثلة==
==أمثلة==
سطر 25: سطر 31:
/(.)(.)/.match("abc", 1)[2]  #=> "c"‎</syntaxhighlight>
/(.)(.)/.match("abc", 1)[2]  #=> "c"‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Regexp/inspect|inspect]]</code>: يعيد  نسخة نصية منسقة من التعبير النمطي . قد يكون من المفاجئ أن تعلم أن <code>#inspect</code> ينتج في الواقع نسخة طبيعية من السلسلة النصية أكثر حتى من التابع <code>#to_s</code>.
* التابع <code>[[Ruby/Regexp/match-3F|match?‎]]</code>: يُعيد  القيمة <code>true</code> أو <code>false</code> بحسب ما إذا كان التعبير النمطي قد طوبِق أم لا.
* التابع <code>[[Ruby/Regexp/match-3F|match?‎]]</code>: يُعيد  القيمة <code>true</code> أو <code>false</code> بحسب ما إذا كان التعبير النمطي قد طوبِق أم لا دون تحديث المتغير $~ والمتغيرات الأخرى ذات الصلة. في حال إعطاء الوسيط الثاني، فإنّه يحدد الموضع في السلسلة النصية لبدء البحث.


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

مراجعة 23:33، 31 أكتوبر 2018

يُعيد التابع match كائنًا من النوع MatchData يصف المطابقة، أو يعيد nil إذا لم يكن هناك تطابق. هذا يُكافئ استرداد قيمة المتغير الخاص ‎$~‎ بعد مطابقة عادية. في حال تمرير الوسيط الثاني،، فسيحدد موضع البدء في السلسلة النصية.

/(.)(.)(.)/.match("abc")[2]   #=> "b"
/(.)(.)/.match("abc", 1)[2]   #=> "c"‎

في حال تمرير كتلة، قسيستدعي الكتلة باستخدام MatchData إذا نجحت المطابقة، وهكذا يمكنك كتابة:

/M(.*)/.match("Matz") do |m|
  puts m[0]
  puts m[1]
end

بدلًا من:

if m = /M(.*)/.match("Matz")
  puts m[0]
  puts m[1]
end

في هذه الحالة، القيمة المعادة هي القيمة الناتجة عن تنفيذ الكتلة.

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

match(str)  matchdata or nil
match(str,pos) matchdata or nil

المعاملات

str‎

سلسلة نصية.

pos‎

موضع البدء.

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

يُعيد التابع match كائنًا من النوع MatchData يصف المطابقة، أو يعيد nil إذا لم يكن هناك تطابق.

أمثلة

مثال على استخدام التابع match‎:

/(.)(.)(.)/.match("abc")[2]   #=> "b"
/(.)(.)/.match("abc", 1)[2]   #=> "c"‎

انظر أيضا

  • التابع match?‎: يُعيد القيمة true أو false بحسب ما إذا كان التعبير النمطي قد طوبِق أم لا.

مصادر