الفرق بين المراجعتين لصفحة: «Ruby/Regexp/match»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: التابع <code>match | <noinclude>{{DISPLAYTITLE: التابع <code>Regexp.match</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Regexp]] | [[تصنيف: Ruby Regexp]] | ||
يُعيد التابع <code>match</code> كائنًا من النوع <code>MatchData</code> يصف | يُعيد التابع <code>match</code> كائنًا من النوع <code>[[Ruby/MatchData|MatchData]]</code> يصف المطابقة بين تعبير نمطي وسلسلة نصية، أو يعيد القيمة <code>nil</code> إذا لم يكن هناك تطابق. هذا يُكافئ استرداد قيمة المتغير الخاص <code>$~</code> بعد تنفيذ عملية مطابقة عادية. في حال تمرير المعامل الثاني، فسيحدد موضع البدء في السلسلة النصية.<syntaxhighlight lang="ruby">/(.)(.)(.)/.match("abc")[2] #=> "b" | ||
/(.)(.)/.match("abc", 1)[2] #=> "c"</syntaxhighlight> | /(.)(.)/.match("abc", 1)[2] #=> "c"</syntaxhighlight> | ||
في حال تمرير كتلة، | في حال تمرير كتلة، فسيستدعي الكتلة باستخدام <code>[[Ruby/MatchData|MatchData]]</code> إذا نجحت المطابقة، وهكذا يمكنك كتابة:<syntaxhighlight lang="ruby">/M(.*)/.match("Matz") do |m| | ||
puts m[0] | puts m[0] | ||
puts m[1] | puts m[1] | ||
سطر 19: | سطر 19: | ||
==المعاملات== | ==المعاملات== | ||
===<code>str</code>=== | ===<code>str</code>=== | ||
سلسلة نصية. | سلسلة نصية يراد مطابقتها مع تعبير نمطي. | ||
===<code>pos</code>=== | ===<code>pos</code>=== | ||
موضع البدء. | موضع البدء. | ||
==القيمة | ==القيمة المعادة== | ||
يعاد كائنٌ من النوع <code>[[Ruby/MatchData|MatchData]]</code> يصف المطابقة، أو تعاد القيمة <code>nil</code> إذا لم يكن هناك تطابق. | |||
==أمثلة== | ==أمثلة== | ||
سطر 30: | سطر 30: | ||
<syntaxhighlight lang="ruby">/(.)(.)(.)/.match("abc")[2] #=> "b" | <syntaxhighlight lang="ruby">/(.)(.)(.)/.match("abc")[2] #=> "b" | ||
/(.)(.)/.match("abc", 1)[2] #=> "c"</syntaxhighlight> | /(.)(.)/.match("abc", 1)[2] #=> "c"</syntaxhighlight> | ||
==انظر | ==انظر أيضًا== | ||
* التابع <code>[[Ruby/Regexp/match-3F|match?]]</code>: | * التابع <code>[[Ruby/Regexp/match-3F|match?]]</code>: يتحقق ما إذا كان التعبير النمطي المعطى قد تطابق (matched) أم لا دون تحديث المتغير <code>$~</code> والمتغيرات الأخرى ذات الصلة. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Regexp.html#method-i-match قسم | *[http://ruby-doc.org/core-2.5.1/Regexp.html#method-i-match قسم التابع match في الصنف Regexp في توثيق روبي الرسمي.] |
المراجعة الحالية بتاريخ 05:49، 4 ديسمبر 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
موضع البدء.
القيمة المعادة
يعاد كائنٌ من النوع MatchData
يصف المطابقة، أو تعاد القيمة nil
إذا لم يكن هناك تطابق.
أمثلة
مثال على استخدام التابع match
:
/(.)(.)(.)/.match("abc")[2] #=> "b"
/(.)(.)/.match("abc", 1)[2] #=> "c"
انظر أيضًا
- التابع
match?
: يتحقق ما إذا كان التعبير النمطي المعطى قد تطابق (matched) أم لا دون تحديث المتغير $~
والمتغيرات الأخرى ذات الصلة.