الفرق بين المراجعتين لصفحة: «Ruby/String/match»
جميل-بيلوني (نقاش | مساهمات) إنشاء الصفحة. هذه الصفحة من مساهمات "كريم حبال". |
جميل-بيلوني (نقاش | مساهمات) لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby String]] | [[تصنيف: Ruby String]] | ||
يحول التابع <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
: يستبدل محتوى السلسلة النصية التي استدعي معها بمحتوى السلسلة المُمرَّرة إليه.