الفرق بين المراجعتين ل"Ruby/String/sub-21"

من موسوعة حسوب
< Ruby‏ | String
اذهب إلى التنقل اذهب إلى البحث
(إنشاء الصفحة. هذه الصفحة من مساهمات "كريم حبال".)
 
(إضافة المحتوى)
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby String]]
 
[[تصنيف: Ruby String]]
يعيد التابع <code>sub!‎</code> ب
+
يبدل التابع <code>sub!‎</code> قيمة محدَّدة مكان أول تطابق للنمط معطى في السلسلة النصية التي استدعي معها.
 +
 
 +
هذا التابع مماثل تمامًا للتابع <code>[[Ruby/String/sub|sub]]</code> ولكن يعدل على السلسلة المعطاة نفسها.
 +
 
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">sub!(pattern, replacement) → str or nil
 
<syntaxhighlight lang="ruby">sub!(pattern, replacement) → str or nil
 
sub!(pattern) {|match| block } → str or nil
 
sub!(pattern) {|match| block } → str or nil
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
==المعاملات==
 +
===<code>pattern</code>===
 +
يكون عادةً <nowiki/>[[Ruby/Regexp|تعبيرًا نمطيًّا]]. إن كان <nowiki/>[[Ruby/String|سلسلة نصية]]، فستُفسَّر أية محارف خاصة بالتعبيرات النمطية الموجودة فيها حرفيًّا؛ أي <code>'‎\\d'</code> سيطابق خط مائل عكسي يتبعه الحرف <code>'d'</code> مباشرةً بدلًا من عددٍ.
 +
===<code>replacement</code>===
 +
إن كان [[Ruby/String|سلسلة نصية]]، فسيحل مكان النص المتطابق. قد يحوي على مراجع خلفية (back-references) للمجموعات الملتقطة عبر النمط <code>pattern</code> مثل النموذج <code>"‎\d"</code> إذ <code>d</code> هو عدد المجموعة أو <code>"‎\k<n>‎"</code> إذ <code>n</code> هو اسم المجموعة. إن كان سلسلة نصية مقتبسة بعلامتي اقتباس مزدوجتين، يجب أن يُسبّق كلا المرجعين الخلفيين بخط مائل عكسي إضافي. على أي حال، لن تشير المتغيرات الخاصة بالمجموعات الملتقطة (المتطابقة) - مثل ‎<code>$&‎</code> - إلى العنصر الملتقط الحالي. 
  
 +
إن كان هذا المعامل سلسلة نصية تبدو وكأنها مجموعة متطابقة لنمط ولكنها ليست مجموعة متطابقة لنمط مثل  <code>"‎\'‎"</code>، فيجب أن تُسبَق بخطين مائلين عكسيين مثل <code>"‎\'‎\"</code>.
 +
===<code>hash</code>===
 +
[[Ruby/Hash|جدول Hash]]. إن مُرِّر كمعامل ثاني إلى التابع وكانت القيمة المتطابقة مساويةً لإحدى قيم مفاتيحه، فستُبدَل به القيمة المقابلة لهذا المفتاح. أي تُمثِّل تلك القيمة المقابلة سلسلة الاستبدال.
 
==القيمة المعادة==
 
==القيمة المعادة==
يعاد
+
تعاد السلسلة النصية المعطاة نفسها بعد تبديل القيمة <code>replacment</code> أو <code>hash</code> مكان أول تطابق عبر <code>pattern</code> في السلسلة النصية المعطاة.
  
==انظر أيضا==
+
==انظر أيضًا==
 +
* التابع <code>[[Ruby/String/sub|sub]]</code>: يعيد نسخة من السلسلة النصية التي استدعي معها مع تبديل قيمة محدَّدة مع أول تطابق للنمط المعطى.
 +
* التابع <code>[[Ruby/String/gsub-21|gsub!‎]]</code>: يبدل قيمة (أو قيم) محدَّدة مكان جميع الأنماط المتطابقة في السلسلة النصية التي استدعي معها.
 +
* التابع <code>[[Ruby/String/reverse-21|reverse!‎]]</code>: يعدل على السلسلة النصية التي استدعي معها بعكس ترتيب المحارف فيها.
 +
* التابع <code>[[Ruby/String/scrub-21|scrub!‎]]</code>: يستبدل البايتات غير الصالحة في السلسلة النصية التي استدعي معها بمحرف محدَّد أو بالقيمة التي تعيدها الكتلة إن أعطيت.
 +
* التابع <code>[[Ruby/String/slice-21|slice!‎]]</code>: يقتطع محرفًا ذا فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من السلسلة النصية التي استدعيت معه.
  
 
==مصادر==
 
==مصادر==
 
*[http://ruby-doc.org/core-2.5.1/String.html#method-i-sub-21 قسم التابع sub!‎‎ في الصنف String في توثيق روبي الرسمي.]
 
*[http://ruby-doc.org/core-2.5.1/String.html#method-i-sub-21 قسم التابع sub!‎‎ في الصنف String في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 19:10، 27 مارس 2019

يبدل التابع sub!‎ قيمة محدَّدة مكان أول تطابق للنمط معطى في السلسلة النصية التي استدعي معها.

هذا التابع مماثل تمامًا للتابع sub ولكن يعدل على السلسلة المعطاة نفسها.

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

sub!(pattern, replacement)  str or nil
sub!(pattern) {|match| block }  str or nil

المعاملات

pattern

يكون عادةً تعبيرًا نمطيًّا. إن كان سلسلة نصية، فستُفسَّر أية محارف خاصة بالتعبيرات النمطية الموجودة فيها حرفيًّا؛ أي '‎\\d' سيطابق خط مائل عكسي يتبعه الحرف 'd' مباشرةً بدلًا من عددٍ.

replacement

إن كان سلسلة نصية، فسيحل مكان النص المتطابق. قد يحوي على مراجع خلفية (back-references) للمجموعات الملتقطة عبر النمط pattern مثل النموذج "‎\d" إذ d هو عدد المجموعة أو "‎\k<n>‎" إذ n هو اسم المجموعة. إن كان سلسلة نصية مقتبسة بعلامتي اقتباس مزدوجتين، يجب أن يُسبّق كلا المرجعين الخلفيين بخط مائل عكسي إضافي. على أي حال، لن تشير المتغيرات الخاصة بالمجموعات الملتقطة (المتطابقة) - مثل ‎$&‎ - إلى العنصر الملتقط الحالي. 

إن كان هذا المعامل سلسلة نصية تبدو وكأنها مجموعة متطابقة لنمط ولكنها ليست مجموعة متطابقة لنمط مثل "‎\'‎"، فيجب أن تُسبَق بخطين مائلين عكسيين مثل "‎\'‎\".

hash

جدول Hash. إن مُرِّر كمعامل ثاني إلى التابع وكانت القيمة المتطابقة مساويةً لإحدى قيم مفاتيحه، فستُبدَل به القيمة المقابلة لهذا المفتاح. أي تُمثِّل تلك القيمة المقابلة سلسلة الاستبدال.

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

تعاد السلسلة النصية المعطاة نفسها بعد تبديل القيمة replacment أو hash مكان أول تطابق عبر pattern في السلسلة النصية المعطاة.

انظر أيضًا

  • التابع sub: يعيد نسخة من السلسلة النصية التي استدعي معها مع تبديل قيمة محدَّدة مع أول تطابق للنمط المعطى.
  • التابع gsub!‎: يبدل قيمة (أو قيم) محدَّدة مكان جميع الأنماط المتطابقة في السلسلة النصية التي استدعي معها.
  • التابع reverse!‎: يعدل على السلسلة النصية التي استدعي معها بعكس ترتيب المحارف فيها.
  • التابع scrub!‎: يستبدل البايتات غير الصالحة في السلسلة النصية التي استدعي معها بمحرف محدَّد أو بالقيمة التي تعيدها الكتلة إن أعطيت.
  • التابع slice!‎: يقتطع محرفًا ذا فهرس محدد، أو جزءًا محددًا ببداية وطول، أو مجالًا محددًا ببداية ونهاية من السلسلة النصية التي استدعيت معه.

مصادر