الفرق بين المراجعتين ل"Ruby/Regexp/new"

من موسوعة حسوب
< Ruby‏ | Regexp
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>new‎</code> الخاص بالصنف <code>Regexp</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف:...')
 
ط
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 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>[[Ruby/Regexp/options|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>[[Ruby/Regexp/options|options]]</code> مساوية للقيمة <code>nil</code> أو <code>false</code>، فسيكون التعبير النمطي غير حساس لحالة الأحرف.
 
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">new(string, [options]) → regexp
 
<syntaxhighlight lang="ruby">new(string, [options]) → regexp
سطر 12: سطر 11:
 
==المعاملات==
 
==المعاملات==
 
===<code>string‎</code>===
 
===<code>string‎</code>===
 +
سلسلة نصية.
 +
 
===<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>:
+
مثال على استخدام التابع <code>new‎</code>:<syntaxhighlight lang="ruby">r1 = Regexp.new('^a-z+:\\s+\w+') #=> /^a-z+:\s+\w+/
<syntaxhighlight lang="ruby">r1 = Regexp.new('^a-z+:\\s+\w+') #=> /^a-z+:\s+\w+/
 
 
r2 = Regexp.new('cat', true)    #=> /cat/i
 
r2 = Regexp.new('cat', true)    #=> /cat/i
 
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/last_match|last_match]]</code>: يُعيد  في الشكل الأول  كائن <code>[[Ruby/MatchData|MatchData]]</code> الذي تم إنشاؤه من آخر تطابق ناجح للنمط. وهو مكافئ لقراءة المتغير العام المخصوص <code>$~</code> (راجع المتغيرات العامة المخصوصة في صفحة <code>[[Ruby/Regexp|Regexp]]</code> لمزيد من التفاصيل).
+
*التابع <code>[[Ruby/Regexp/compile|compile]]</code>: ينشئ تعبيرًا نمطيًّا جديدًا.
* التابع <code>[[Ruby/Regexp/quote|quote]]</code>: يُخلّص (escapes) أي حرف قد يكون له معنى خاص في التعبير النمطي. ثم يُعيد سلسلة نصية جديدة مُخلّصة، أو يعيد الكائن  (self) إذا لم يتم تخليص أي أحرف.  لكل سلسلة نصية str، ستكون قيمة التعبير <code>Regexp.new(Regexp.escape( str ))=~ str</code> مساوية للقيمة true.
+
*التابع <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‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 05:44، 4 ديسمبر 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) ناجح للنمط.

مصادر