الفرق بين المراجعتين لصفحة: «Ruby/Regexp/match»
أنشأ الصفحة ب'<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/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
بحسب ما إذا كان التعبير النمطي قد طوبِق أم لا.