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

من موسوعة حسوب
< Ruby‏ | Regexp
لا ملخص تعديل
ط مراجعة وتدقيق.
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>new‎</code> الخاص بالصنف <code>Regexp</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: التابع <code>Regexp.new‎</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Regexp]]
[[تصنيف: Ruby Regexp]]
ينشئ التابع <code>new</code> تعبيرًا نمطيًا جديدًا من وسيط <code>pattern</code>، والذي يمكن أن يكون إما سلسلة نصية (<code>[[Ruby/String|String]]</code>) أو كائنًا من النوع <code>[[Ruby/Regexp|Regexp]]</code> (وفي هذه الحالة يتم نشر خيارات التعبير النمطي)، وقد لا يتم تحديد الخيارات الجديدة (منذ روبي 1.8).
ينشئ التابع <code>new</code> تعبيرًا نظاميًّا جديدًا من النمط المُمرَّر إليه، والذي يمكن أن يكون إما [[Ruby/String|سلسلة نصية]] أو كائنًا من النوع <code>[[Ruby/Regexp|Regexp]]</code> (وفي هذه الحالة يتم نشر خيارات التعبير النظامي)؛ وقد لا يتم تحديد الخيارات الجديدة (منذ روبي 1.8).
 
إن كان الوسيط <code>options</code> (انظر فقرة البنية العامة) عددًا صحيحًا (<code>[[Ruby/Integer|Integer]]</code>)، فيجب أن يساوي واحدًا أو أكثر من الثوابت <code>[[Ruby/Regexp/EXTENDED|Regexp::EXTENDED]]</code> أو <code>[[Ruby/Regexp/IGNORECASE|Regexp::IGNORECASE]]</code> أو <code>[[Ruby/Regexp/MULTILINE|Regexp::MULTILINE]]</code>، أو كلها.  وإلا، إن لم تكن قيمة <code>options</code> مساوية للقيمة <code>nil</code> أو <code>false</code>، فلن يكون التعبير النمطي حساسًا لحالة الأحرف.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">new(string, [options]) → regexp
<syntaxhighlight lang="ruby">new(string, [options]) → regexp
سطر 16: سطر 14:


===<code>options‎</code>===
===<code>options‎</code>===
خيارات.
الخيارات التي تتحكم بالتعبير النظامي. إن كان المعامل <code>options</code> [[Ruby/Integer|عددًا صحيحًا]]، فيجب أن يساوي واحدًا أو أكثر من الثوابت التالية: <code>Regexp::EXTENDED</code> أو <code>Regexp::IGNORECASE</code> أو <code>Regexp::MULTILINE</code>، أو كلها. وإلا، إن لم تكن قيمة <code>options</code> مساوية للقيمة <code>nil</code> أو <code>false</code>، فلن يكون التعبير النظامي حساسًا لحالة الأحرف.


===<code>regexp‎</code>===
===<code>regexp‎</code>===
تعبير نمطي.
تعبير نظامي.


==القيمة المُعادة==
==القيمة المعادة==
يعيد التابع <code>new</code> تعبيرًا نمطيًا جديدًا.
يعاد تعبيرٌ نظامي جديد.


==أمثلة==
==أمثلة==
سطر 29: سطر 27:
r3 = Regexp.new(r2)              #=> /cat/i
r3 = Regexp.new(r2)              #=> /cat/i
r4 = Regexp.new('dog', Regexp::EXTENDED | Regexp::IGNORECASE) #=> /dog/ix‎</syntaxhighlight>
r4 = Regexp.new('dog', Regexp::EXTENDED | Regexp::IGNORECASE) #=> /dog/ix‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضًا==
*التابع <code>[[Ruby/Regexp/compile|compile]]</code>: ينشئ تعبيرًا نمطيًا جديدًا.
*التابع <code>[[Ruby/Regexp/compile|compile]]</code>: ينشئ تعبيرًا نظاميًّا جديدًا.
*التابع <code>[[Ruby/Regexp/last match|last_match]]</code>: يُعيد إن لم يمرَّر إليه أي شيء كائنًا من النوع <code>[[Ruby/MatchData|MatchData]]</code> الذي تم إنشاؤه من آخر تطابق (match) ناجح للنمط.
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Regexp.html#method-c-new قسم التابع new‎ في الصنف Regexp‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Regexp.html#method-c-new قسم التابع new‎ في الصنف Regexp‎ في توثيق روبي الرسمي.]

مراجعة 14:19، 3 ديسمبر 2018

ينشئ التابع new تعبيرًا نظاميًّا جديدًا من النمط المُمرَّر إليه، والذي يمكن أن يكون إما سلسلة نصية أو كائنًا من النوع Regexp (وفي هذه الحالة يتم نشر خيارات التعبير النظامي)؛ وقد لا يتم تحديد الخيارات الجديدة (منذ روبي 1.8).

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

new(string, [options])  regexp
new(regexp) regexp
compile(string, [options]) regexp
compile(regexp)   regexp

المعاملات

string‎

سلسلة نصية.

options‎

الخيارات التي تتحكم بالتعبير النظامي. إن كان المعامل options عددًا صحيحًا، فيجب أن يساوي واحدًا أو أكثر من الثوابت التالية: Regexp::EXTENDED أو Regexp::IGNORECASE أو Regexp::MULTILINE، أو كلها. وإلا، إن لم تكن قيمة options مساوية للقيمة nil أو false، فلن يكون التعبير النظامي حساسًا لحالة الأحرف.

regexp‎

تعبير نظامي.

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

يعاد تعبيرٌ نظامي جديد.

أمثلة

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

r1 = Regexp.new('^a-z+:\\s+\w+') #=> /^a-z+:\s+\w+/
r2 = Regexp.new('cat', true)     #=> /cat/i
r3 = Regexp.new(r2)              #=> /cat/i
r4 = Regexp.new('dog', Regexp::EXTENDED | Regexp::IGNORECASE) #=> /dog/ix‎

انظر أيضًا

  • التابع compile: ينشئ تعبيرًا نظاميًّا جديدًا.
  • التابع last_match: يُعيد إن لم يمرَّر إليه أي شيء كائنًا من النوع MatchData الذي تم إنشاؤه من آخر تطابق (match) ناجح للنمط.

مصادر