الفرق بين المراجعتين لصفحة: «Ruby/String/5B-5D»
جميل-بيلوني (نقاش | مساهمات) إنشاء الصفحة. هذه الصفحة من مساهمات "كريم حبال". |
جميل-بيلوني (نقاش | مساهمات) |
||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Operator]] | [[تصنيف: Ruby Operator]] | ||
[[تصنيف: Ruby String]] | [[تصنيف: Ruby String]] | ||
يعيد المعامل <code>[]</code> | يجلب المعامل <code>[]</code> محرفًا ذا فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من السلسلة النصية التي استدعيت معه. | ||
في الحالات الثلاث السابقة، إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع المحرف بدءًا من نهاية السلسلة، إذ تمثل القيمة -1 فهرس المحرف الأخير. | |||
بالنسبة للحالتين الثانية والثالثة، فهرس البداية يُحسب قبل محرف واحد والفهرس يطابق حجم السلسلة. | |||
عند تمرير [[Ruby/Regexp|تعبير نمطي]] (Regexp) إلى المعامل <code>[]</code>، يعيد الجزء المطابق من السلسلة. إذا أُلحق التعبير النمطي بمُعامل التقاط (capture)، وهو عبارة عن اسم أو فهرس لمجموعة التقاط ضمن التعبير النمطي، فإن المعامل <code>[]</code> يعيد المجموعة المُحددة بدلًا من إرجاع الجزء المُطابق ([[Ruby/MatchData|<code>MatchData</code>]]) بأكمله. | |||
عند تمرير سلسلة إلى المعامل، ستُعاد هذه السلسلة في حال كانت محتواة في السلسلة النصية؛ أما في حال لم تكن، ستُعاد القيمة <code>nil</code>. | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">str[index] → new_str or nil | <syntaxhighlight lang="ruby">str[index] → new_str or nil | ||
سطر 11: | سطر 20: | ||
str[regexp, capture] → new_str or nil | str[regexp, capture] → new_str or nil | ||
str[match_str] → new_str or nil</syntaxhighlight> | str[match_str] → new_str or nil</syntaxhighlight> | ||
== المعاملات == | |||
=== <code>index</code> === | |||
[[Ruby/Integer|عدد صحيح]] يمثل فهرس المحرف المراد جلبه من السلسلة المُستدعاة. | |||
=== <code>start</code> === | |||
[[Ruby/Integer|عدد صحيح]] يمثل فهرس بداية المحارف المراد جلبها من السلسلة المُستدعاة. | |||
=== <code>length</code> === | |||
[[Ruby/Integer|عدد صحيح]] يمثل طول السلسلة المراد جلبها من السلسلة المُستدعاة. | |||
=== <code>range</code> === | |||
[[Ruby/Range|مجال]] يحدد فهرس البداية وفهرس النهاية لسلسلة المحارف المراد جلبها من السلسلة المُستدعاة. | |||
=== <code>regexp</code> === | |||
[[Ruby/Regexp|تعبير نمطي]] يمثل المحارف المراد مطابقتها وجلبها من السلسلة المُستدعاة. | |||
=== <code>capture</code> === | |||
فهرس أو اسم [[Ruby/MatchData|للمجموعة الملتقطة]] في التعبير النظامي <code>regexp</code> المُراد إعادتها فقط. | |||
=== <code>match_str</code> === | |||
[[Ruby/String|السلسلة]] المراد جلبها من السلسلة المُستدعاة. | |||
==القيمة المعادة== | ==القيمة المعادة== | ||
تُعاد سلسلة من محرف وحيد ضمن الفهرس <code>index</code> المُحدد، أو سلسلة محارف محددة بالبداية <code>start</code> والطول <code>length</code> أو بالمجال <code>range</code>. | |||
إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع المحرف بدءًا من نهاية السلسلة، إذ تمثل القيمة -1 فهرس المحرف الأخير. | |||
تُعاد سلسلة فارغة في حال كان فهرس بداية المجال المُحدد يقع عند نهاية السلسلة. | |||
تُعاد القيمة <code>nil</code> في حال كان الفهرس خارج السلسلة أو في حال تمرير طول سالب. | |||
تُعاد سلسلة من المحارف التي تطابق التعبير النظامي أو مجموعة محددة منه، أو تعاد القيمة <code>nil</code> في حال عدم العثور على أي تطابق. | |||
تُعاد سلسلة محددة مُحتواة في السلسلة النصية المعطاة، أو تعاد القيمة <code>nil</code> في حال لم تكن السلسلة المُحددة موجودة في السلسلة النصية. | |||
==أمثلة== | ==أمثلة== | ||
سطر 43: | سطر 85: | ||
a["lo"] #=> "lo" | a["lo"] #=> "lo" | ||
a["bye"] #=> nil</syntaxhighlight> | a["bye"] #=> nil</syntaxhighlight> | ||
==انظر | ==انظر أيضًا== | ||
* المعامل <code>[[Ruby/String/5B-5D-3D|[]=]]</code>: يبدِّل سلسلةً نصيةً محدَّدةً مكان جزءٍ محدَّد أو كامل محتوى سلسلة نصية أخرى. | |||
* المعامل <code>[[Ruby/String/3C-3D-3E|<=>]]</code>: يُقارن بين سلسلتين نصيتين ثم يعيد القيم 1-، أو 1، أو 0، إذا ما كانت السلسلة النصية الأولى أكبر أو أصغر أو تساوي السلسلة النصية الثانية على التوالي. | |||
* المعامل <code>[[Ruby/String/3D-3D|==]]</code>: يتحقق من تساوي السلسلة النصية مع أي كائن آخر، علمًا أن المساواة تتحقق عند تطابق الطول والمحتوى. | |||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/String.html#method-i-5B-5D قسم المعامل [] في الصنف String في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/String.html#method-i-5B-5D <nowiki>قسم المعامل [] في الصنف String في توثيق روبي الرسمي.</nowiki>] |
المراجعة الحالية بتاريخ 19:26، 30 يناير 2019
يجلب المعامل []
محرفًا ذا فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من السلسلة النصية التي استدعيت معه.
في الحالات الثلاث السابقة، إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع المحرف بدءًا من نهاية السلسلة، إذ تمثل القيمة -1 فهرس المحرف الأخير.
بالنسبة للحالتين الثانية والثالثة، فهرس البداية يُحسب قبل محرف واحد والفهرس يطابق حجم السلسلة.
عند تمرير تعبير نمطي (Regexp) إلى المعامل []
، يعيد الجزء المطابق من السلسلة. إذا أُلحق التعبير النمطي بمُعامل التقاط (capture)، وهو عبارة عن اسم أو فهرس لمجموعة التقاط ضمن التعبير النمطي، فإن المعامل []
يعيد المجموعة المُحددة بدلًا من إرجاع الجزء المُطابق (MatchData
) بأكمله.
عند تمرير سلسلة إلى المعامل، ستُعاد هذه السلسلة في حال كانت محتواة في السلسلة النصية؛ أما في حال لم تكن، ستُعاد القيمة nil
.
البنية العامة
str[index] → new_str or nil
str[start, length] → new_str or nil
str[range] → new_str or nil
str[regexp] → new_str or nil
str[regexp, capture] → new_str or nil
str[match_str] → new_str or nil
المعاملات
index
عدد صحيح يمثل فهرس المحرف المراد جلبه من السلسلة المُستدعاة.
start
عدد صحيح يمثل فهرس بداية المحارف المراد جلبها من السلسلة المُستدعاة.
length
عدد صحيح يمثل طول السلسلة المراد جلبها من السلسلة المُستدعاة.
range
مجال يحدد فهرس البداية وفهرس النهاية لسلسلة المحارف المراد جلبها من السلسلة المُستدعاة.
regexp
تعبير نمطي يمثل المحارف المراد مطابقتها وجلبها من السلسلة المُستدعاة.
capture
فهرس أو اسم للمجموعة الملتقطة في التعبير النظامي regexp
المُراد إعادتها فقط.
match_str
السلسلة المراد جلبها من السلسلة المُستدعاة.
القيمة المعادة
تُعاد سلسلة من محرف وحيد ضمن الفهرس index
المُحدد، أو سلسلة محارف محددة بالبداية start
والطول length
أو بالمجال range
.
إن مُرِّرت قيم سالبة للفهارس، فسيُحسَب موضع المحرف بدءًا من نهاية السلسلة، إذ تمثل القيمة -1 فهرس المحرف الأخير.
تُعاد سلسلة فارغة في حال كان فهرس بداية المجال المُحدد يقع عند نهاية السلسلة.
تُعاد القيمة nil
في حال كان الفهرس خارج السلسلة أو في حال تمرير طول سالب.
تُعاد سلسلة من المحارف التي تطابق التعبير النظامي أو مجموعة محددة منه، أو تعاد القيمة nil
في حال عدم العثور على أي تطابق.
تُعاد سلسلة محددة مُحتواة في السلسلة النصية المعطاة، أو تعاد القيمة nil
في حال لم تكن السلسلة المُحددة موجودة في السلسلة النصية.
أمثلة
مثال على استخدام المعامل []
:
a = "hello there"
a[1] #=> "e"
a[2, 3] #=> "llo"
a[2..3] #=> "ll"
a[-3, 2] #=> "er"
a[7..-2] #=> "her"
a[-4..-2] #=> "her"
a[-2..-4] #=> ""
a[11, 0] #=> ""
a[11] #=> nil
a[12, 0] #=> nil
a[12..-1] #=> nil
a[/[aeiou](.)\1/] #=> "ell"
a[/[aeiou](.)\1/, 0] #=> "ell"
a[/[aeiou](.)\1/, 1] #=> "l"
a[/[aeiou](.)\1/, 2] #=> nil
a[/(?<vowel>[aeiou])(?<non_vowel>[^aeiou])/, "non_vowel"] #=> "l"
a[/(?<vowel>[aeiou])(?<non_vowel>[^aeiou])/, "vowel"] #=> "e"
a["lo"] #=> "lo"
a["bye"] #=> nil
انظر أيضًا
- المعامل
[]=
: يبدِّل سلسلةً نصيةً محدَّدةً مكان جزءٍ محدَّد أو كامل محتوى سلسلة نصية أخرى.
- المعامل
<=>
: يُقارن بين سلسلتين نصيتين ثم يعيد القيم 1-، أو 1، أو 0، إذا ما كانت السلسلة النصية الأولى أكبر أو أصغر أو تساوي السلسلة النصية الثانية على التوالي. - المعامل
==
: يتحقق من تساوي السلسلة النصية مع أي كائن آخر، علمًا أن المساواة تتحقق عند تطابق الطول والمحتوى.