الفرق بين المراجعتين ل"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 بحسب ما إذا كان التعبير النمطي قد طوبِق أم لا.

مصادر