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

من موسوعة حسوب
< Ruby‏ | String
إنشاء الصفحة. هذه الصفحة من مساهمات "كريم حبال".
 
لا ملخص تعديل
 
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby String]]
[[تصنيف: Ruby String]]
يعيد التابع <code>match</code> ب
يحول التابع <code>match</code> النمط المُمرَّر إليه إلى [[Ruby/Regexp|تعبير نمطي]] (إن لم يكن كذلك) ثم يطابقه مع السلسلة النصية التي استدعيت معه.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">match(pattern) → matchdata or nil
<syntaxhighlight lang="ruby">match(pattern) → matchdata or nil
match(pattern, pos) → matchdata or nil</syntaxhighlight>
match(pattern, pos) → matchdata or nil</syntaxhighlight>إن أعطيت كتلة، فستُستدعَى مع الكائن <code>[[Ruby/MatchData|MatchData]]</code> المعاد إن نجحت عملية المطابقة، وبذلك يمكننا كتابة:<syntaxhighlight lang="ruby">
str.match(pat) {|m| ...}
</syntaxhighlight>بدلًا من:<syntaxhighlight lang="ruby">
if m = str.match(pat)
  ...
end
</syntaxhighlight>وستكون القيمة المعادة هي القيمة التي تعيدها الكتلة بعد انتهاء تنفيذها في هذه الحالة.
 
== المعاملات ==
 
=== <code>pattern</code> ===
[[Ruby/Regexp|التعبير النمطي]] المراد مطابقته للسلسلة النصية المعطاة. إن يكن [[Ruby/Regexp|تعبيرًا نمطيًّا]]، فسيُحوَّل النمط المعطى إلى [[Ruby/Regexp|تعبير نمطي]].
 
=== <code>pos</code> ===
إن أعطي هذا المعامل الاختياري، فسيُحدِّد موضع بدء عملية المطابقة في السلسلة النصية المعطاة.


==القيمة المعادة==
==القيمة المعادة==
يعاد  
يعاد كائن من النوع <code>[[Ruby/MatchData|MatchData]]</code> يحوي القيم التي طابقها <code>pattern</code> في السلسلة النصية المعطاة.


==أمثلة==
==أمثلة==
سطر 19: سطر 33:
'hello'.match('xx')        #=> nil</syntaxhighlight>
'hello'.match('xx')        #=> nil</syntaxhighlight>


==انظر أيضا==
==انظر أيضًا==
* التابع <code>[[Ruby/String/match-3F|match?‎]]</code>: يحول النمط المُمرَّر إليه إلى [[Ruby/Regexp|تعبير نمطي]] (إن لم يكن كذلك) ثم يتحقق من مطابقته من السلسلة النصية التي استدعي معها دون تحديث قيمة المتغير <code>~$</code> والمتغيرات الأخرى المماثلة.
* التابع <code>[[Ruby/String/gsub|gsub]]</code>: يعيد نسخة من السلسلة النصية التي استدعيت معه مع تبديل قيمة (أو قيم) محدَّدة مكان جميع الأنماط المتطابقة فيها.
* التابع <code>[[Ruby/String/replace|replace]]</code>: يستبدل محتوى السلسلة النصية التي استدعي معها بمحتوى السلسلة المُمرَّرة إليه.


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

المراجعة الحالية بتاريخ 11:21، 26 مارس 2019

يحول التابع match النمط المُمرَّر إليه إلى تعبير نمطي (إن لم يكن كذلك) ثم يطابقه مع السلسلة النصية التي استدعيت معه.

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

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

إن أعطيت كتلة، فستُستدعَى مع الكائن MatchData المعاد إن نجحت عملية المطابقة، وبذلك يمكننا كتابة:

str.match(pat) {|m| ...}

بدلًا من:

if m = str.match(pat)
  ...
end

وستكون القيمة المعادة هي القيمة التي تعيدها الكتلة بعد انتهاء تنفيذها في هذه الحالة.

المعاملات

pattern

التعبير النمطي المراد مطابقته للسلسلة النصية المعطاة. إن يكن تعبيرًا نمطيًّا، فسيُحوَّل النمط المعطى إلى تعبير نمطي.

pos

إن أعطي هذا المعامل الاختياري، فسيُحدِّد موضع بدء عملية المطابقة في السلسلة النصية المعطاة.

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

يعاد كائن من النوع MatchData يحوي القيم التي طابقها pattern في السلسلة النصية المعطاة.

أمثلة

مثال على استعمال التابع match:

'hello'.match('(.)\1')      #=> #<MatchData "ll" 1:"l">
'hello'.match('(.)\1')[0]   #=> "ll"
'hello'.match(/(.)\1/)[0]   #=> "ll"
'hello'.match(/(.)\1/, 3)   #=> nil
'hello'.match('xx')         #=> nil

انظر أيضًا

  • التابع match?‎: يحول النمط المُمرَّر إليه إلى تعبير نمطي (إن لم يكن كذلك) ثم يتحقق من مطابقته من السلسلة النصية التي استدعي معها دون تحديث قيمة المتغير ~$ والمتغيرات الأخرى المماثلة.
  • التابع gsub: يعيد نسخة من السلسلة النصية التي استدعيت معه مع تبديل قيمة (أو قيم) محدَّدة مكان جميع الأنماط المتطابقة فيها.
  • التابع replace: يستبدل محتوى السلسلة النصية التي استدعي معها بمحتوى السلسلة المُمرَّرة إليه.

مصادر