الفرق بين المراجعتين لصفحة: «Ruby/Regexp/union»

من موسوعة حسوب
< Ruby‏ | Regexp
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>union‎</code> الخاص بالصنف <code>Regexp</code> في روبي}}</noinclude> تصنيف: Ruby تصني...'
 
لا ملخص تعديل
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Regexp]]
[[تصنيف: Ruby Regexp]]
يُعيد التابع <code>union</code> كائن من النوع <code>Regexp</code>، والذي يمثل اتحاد الأنماط المعطاة، أي أنه سيتطابق مع أي من أجزائه. يمكن أن تكون الأنماط كائنات من النوع <code>[[Ruby/Regexp|Regexp]]</code>، وفي هذه الحالة سيتم الاحتفاظ بخياراتها، أو يمكن أن تكون سلاسل نصية. إذا لم يتم إعطاء أية أنماط، فسيعيد التابع <code>union</code> القيمة <code>/(?!)/</code>. السلوك سيكون غير محدد إذا احتوى أيُّ من الأنماط المعطاة على التقاط (capture).
يُعيد التابع <code>union</code> كائنًا من النوع [[Ruby/Regexp|<code>Regexp</code>]]، والذي يمثل اتحاد الأنماط المعطاة، أي أنه سيتطابق مع أي من تلك الأجزاء. يمكن أن تكون الأنماط المعطاة كائنات من النوع <code>[[Ruby/Regexp|Regexp]]</code>، وفي هذه الحالة سيتم الاحتفاظ بخياراتها، أو يمكن أن تكون سلاسل نصية.  


ملاحظة: ستحاول روبي تحويل وسائط <code>[[Ruby/Regexp/union|::union]]</code> إلى تعبير نمطي حرفي عبر to_regexp.
إذا لم يتم إعطاء أية أنماط، فسيعيد التابع <code>union</code> القيمة <code>/(‎?!‎)/</code>. السلوك سيكون غير محدد إذا احتوى أيُّ من الأنماط المعطاة على التقاط (capture).
 
'''ملاحظة''': ستحاول روبي تحويل الوسائط المُمررة للتابع <code>union</code> إلى تعبيرات نمطية حرفية ( regular expression literal) عبر التابع <code>to_regexp</code>.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">union(pat1, pat2, ...)→ new_regexp
<syntaxhighlight lang="ruby">union(pat1, pat2, ...)→ new_regexp
سطر 11: سطر 13:
==المعاملات==
==المعاملات==
===<code>pat1‎</code>===
===<code>pat1‎</code>===
النمط الأول.
===<code>pat2‎</code>===
===<code>pat2‎</code>===
النمط الثاني.
===<code>...‎</code>===
===<code>...‎</code>===
===<code>pats_ary‎</code>===
أنماط أخرى.


==القيمة المُعادة==
==القيمة المُعادة==
يُعيد التابع <code>union</code> كائنًا من النوع [[Ruby/Regexp|<code>Regexp</code>]]، والذي يمثل اتحاد الأنماط المعطاة.


==أمثلة==
==أمثلة==
سطر 26: سطر 33:
Regexp.union(/dogs/, /cats/i)        #=> /(?-mix:dogs)|(?i-mx:cats)/‎</syntaxhighlight>
Regexp.union(/dogs/, /cats/i)        #=> /(?-mix:dogs)|(?i-mx:cats)/‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Regexp/try_convert|try_convert]]</code>: يُحاول  تحويل الوسيط obj  إلى كائن من النوع <code>[[Ruby/Regexp|Regexp]]</code>، باستخدام التابع to_regexp. ثم يعيد التعبير النمطي الناتج، أو nil في حالة تعذر تحويل obj لسبب أو لآخر.
* التابع <code>[[Ruby/Regexp/try_convert|try_convert]]</code>: يُحاول  تحويل الوسيط المعطى إلى كائن من النوع <code>[[Ruby/Regexp|Regexp]]</code>،
* التابع <code>[[Ruby/Regexp/equality_operator|==]]</code>: معامل التساوي - يتساوى تعبيران نمطيان إن كان نماطهما متطابقين، وكان لهما نفس رمز مجموعة الحروف (character set code)، وكانت لهمنا نفس قيمة <code>[[Ruby/Regexp/casefold-3F|casefold?‎]]</code>.


==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Regexp.html#method-c-union قسم  التابع union‎ في الصنف Regexp‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Regexp.html#method-c-union قسم  التابع union‎ في الصنف Regexp‎ في توثيق روبي الرسمي.]

مراجعة 22:06، 31 أكتوبر 2018

يُعيد التابع union كائنًا من النوع Regexp، والذي يمثل اتحاد الأنماط المعطاة، أي أنه سيتطابق مع أي من تلك الأجزاء. يمكن أن تكون الأنماط المعطاة كائنات من النوع Regexp، وفي هذه الحالة سيتم الاحتفاظ بخياراتها، أو يمكن أن تكون سلاسل نصية.

إذا لم يتم إعطاء أية أنماط، فسيعيد التابع union القيمة /(‎?!‎)/. السلوك سيكون غير محدد إذا احتوى أيُّ من الأنماط المعطاة على التقاط (capture).

ملاحظة: ستحاول روبي تحويل الوسائط المُمررة للتابع union إلى تعبيرات نمطية حرفية ( regular expression literal) عبر التابع to_regexp.

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

union(pat1, pat2, ...) new_regexp
union(pats_ary)  new_regexp

المعاملات

pat1‎

النمط الأول.

pat2‎

النمط الثاني.

...‎

أنماط أخرى.

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

يُعيد التابع union كائنًا من النوع Regexp، والذي يمثل اتحاد الأنماط المعطاة.

أمثلة

مثال على استخدام التابع union‎:

Regexp.union                         #=> /(?!)/
Regexp.union("penzance")             #=> /penzance/
Regexp.union("a+b*c")                #=> /a\+b\*c/
Regexp.union("skiing", "sledding")   #=> /skiing|sledding/
Regexp.union(["skiing", "sledding"]) #=> /skiing|sledding/
Regexp.union(/dogs/, /cats/i)        #=> /(?-mix:dogs)|(?i-mx:cats)/‎

انظر أيضا

  • التابع try_convert: يُحاول تحويل الوسيط المعطى إلى كائن من النوع Regexp،

مصادر