الفرق بين المراجعتين لصفحة: «Ruby/String/scan»
جميل-بيلوني (نقاش | مساهمات) إنشاء الصفحة. هذه الصفحة من مساهمات "كريم حبال". |
جميل-بيلوني (نقاش | مساهمات) لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby String]] | [[تصنيف: Ruby String]] | ||
يبحث التابع <code>scan</code> عن نمط محدَّد ضمن السلسلة النصية التي استدعيت معه ويعيد النتائج المتطابقة في مصفوفة أو يمرِّرها إلى الكتلة المعطاة ويعيد الناتج الذي تعيده. | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">scan(pattern) → array | <syntaxhighlight lang="ruby">scan(pattern) → array | ||
scan(pattern) {|match, ...| block } → str</syntaxhighlight> | scan(pattern) {|match, ...| block } → str</syntaxhighlight> | ||
== المعاملات == | |||
=== <code>pattern</code> === | |||
[[Ruby/Regexp|تعيبر نمطي]] أو [[Ruby/String|سلسلة نصية]] يراد البحث عنها ومطابقتها في السلسلة النصية المعطاة. إن لم يحتوي هذا المعامل على مجموعات، فستتألف كل نتيجة فردية من السلسلة النصية المتطابقة (أي <code>&$</code>). أمَّا إن احتوى على مجموعات، فستكون كل نتيجة فردية مصفوفةً بحد ذاتها تحوي عنصر واحد لكل مجموعة | |||
==القيمة المعادة== | ==القيمة المعادة== | ||
تعاد مصفوفة تحوي ناتج تطابق النمط <code>pattern</code> مع السلسلة النصية المعطاة، أو تعاد السلسلة النصية التي تعيدها الكتلة <code>block</code> بعد عن تمرير الأجزاء التي تطابق النمط <code>pattern</code> مع السلسلة النصية المعطاة. | |||
==أمثلة== | ==أمثلة== | ||
سطر 17: | سطر 22: | ||
a.scan(/.../) #=> ["cru", "el ", "wor"] | a.scan(/.../) #=> ["cru", "el ", "wor"] | ||
a.scan(/(...)/) #=> [["cru"], ["el "], ["wor"]] | a.scan(/(...)/) #=> [["cru"], ["el "], ["wor"]] | ||
a.scan(/(..)(..)/) #=> [["cr", "ue"], ["l ", "wo"]]</syntaxhighlight> | a.scan(/(..)(..)/) #=> [["cr", "ue"], ["l ", "wo"]]</syntaxhighlight>مثال آخر على استعمال كتلة مع التابع <code>scan</code>:<syntaxhighlight lang="ruby"> | ||
a.scan(/\w+/) {|w| print "<<#{w}>> " } | |||
print "\n" | |||
a.scan(/(.)(.)/) {|x,y| print y, x } | |||
print "\n" | |||
</syntaxhighlight>ناتج تنفيذ هذا المثال:<syntaxhighlight lang="text"> | |||
<<cruel>> <<world>> | |||
rceu lowlr | |||
</syntaxhighlight> | |||
==انظر أيضًا== | |||
* التابع <code>[[Ruby/String/replace|replace]]</code>: يستبدل محتوى السلسلة النصية التي استدعي معها بمحتوى السلسلة المُمرَّرة إليه. | |||
* التابع <code>[[Ruby/String/split|split]]</code>: يُقسِّم السلسلة النصية التي استدعي معها إلى سلاسل نصية فرعية اعتمادًا على فاصل محدَّد ثم يعيد تلك السلاسل الفرعية في مصفوفة. | |||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/String.html#method-i-scan قسم التابع scan في الصنف String في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/String.html#method-i-scan قسم التابع scan في الصنف String في توثيق روبي الرسمي.] |
المراجعة الحالية بتاريخ 19:45، 27 مارس 2019
يبحث التابع scan
عن نمط محدَّد ضمن السلسلة النصية التي استدعيت معه ويعيد النتائج المتطابقة في مصفوفة أو يمرِّرها إلى الكتلة المعطاة ويعيد الناتج الذي تعيده.
البنية العامة
scan(pattern) → array
scan(pattern) {|match, ...| block } → str
المعاملات
pattern
تعيبر نمطي أو سلسلة نصية يراد البحث عنها ومطابقتها في السلسلة النصية المعطاة. إن لم يحتوي هذا المعامل على مجموعات، فستتألف كل نتيجة فردية من السلسلة النصية المتطابقة (أي &$
). أمَّا إن احتوى على مجموعات، فستكون كل نتيجة فردية مصفوفةً بحد ذاتها تحوي عنصر واحد لكل مجموعة
القيمة المعادة
تعاد مصفوفة تحوي ناتج تطابق النمط pattern
مع السلسلة النصية المعطاة، أو تعاد السلسلة النصية التي تعيدها الكتلة block
بعد عن تمرير الأجزاء التي تطابق النمط pattern
مع السلسلة النصية المعطاة.
أمثلة
مثال على استعمال التابع scan
:
a = "cruel world"
a.scan(/\w+/) #=> ["cruel", "world"]
a.scan(/.../) #=> ["cru", "el ", "wor"]
a.scan(/(...)/) #=> [["cru"], ["el "], ["wor"]]
a.scan(/(..)(..)/) #=> [["cr", "ue"], ["l ", "wo"]]
مثال آخر على استعمال كتلة مع التابع scan
:
a.scan(/\w+/) {|w| print "<<#{w}>> " }
print "\n"
a.scan(/(.)(.)/) {|x,y| print y, x }
print "\n"
ناتج تنفيذ هذا المثال:
<<cruel>> <<world>>
rceu lowlr
انظر أيضًا
- التابع
replace
: يستبدل محتوى السلسلة النصية التي استدعي معها بمحتوى السلسلة المُمرَّرة إليه.
- التابع
split
: يُقسِّم السلسلة النصية التي استدعي معها إلى سلاسل نصية فرعية اعتمادًا على فاصل محدَّد ثم يعيد تلك السلاسل الفرعية في مصفوفة.