التابع String.match
في روبي
يحول التابع 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
: يستبدل محتوى السلسلة النصية التي استدعي معها بمحتوى السلسلة المُمرَّرة إليه.