الفرق بين المراجعتين لصفحة: «Ruby/Regexp/new»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: التابع <code>new | <noinclude>{{DISPLAYTITLE: التابع <code>Regexp.new</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Regexp]] | [[تصنيف: Ruby Regexp]] | ||
ينشئ التابع <code>new</code> تعبيرًا | ينشئ التابع <code>new</code> تعبيرًا نظاميًّا جديدًا من النمط المُمرَّر إليه، والذي يمكن أن يكون إما [[Ruby/String|سلسلة نصية]] أو كائنًا من النوع <code>[[Ruby/Regexp|Regexp]]</code> (وفي هذه الحالة يتم نشر خيارات التعبير النظامي)؛ وقد لا يتم تحديد الخيارات الجديدة (منذ روبي 1.8). | ||
==البنية العامة== | ==البنية العامة== | ||
<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>=== | ||
تعبير | تعبير نظامي. | ||
==القيمة | ==القيمة المعادة== | ||
يعاد تعبيرٌ نظامي جديد. | |||
==أمثلة== | ==أمثلة== | ||
سطر 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 قسم | *[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) ناجح للنمط.