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

من موسوعة حسوب
< Ruby‏ | Regexp
اذهب إلى التنقل اذهب إلى البحث
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Regexp]]
 
[[تصنيف: Ruby Regexp]]
يبحث التابع <code>=~</code> عن تطابق للتعبير النمطي rxp (انظر فقرة البنية العامة) ضمن str.
+
يبحث المعامل‎<code>=~</code> عن تطابق للتعبير النمطي <code>rxp</code> (انظر فقرة البنية العامة) ضمن <code>str</code>.
  
إذا تم استخدام <code>=~</code> مع تعبير نمطي حرفي له التقاطات مسماة (named captures)، تتم إحالة السلاسل الملتقطة (أوnil) على متغيرات محلية تحمل نفس أسماء الالتقاطات.
+
إذا تم استخدام <code>=~</code> مع تعبير نمطي حرفي له التقاطات مسماة (named captures)، فسيتم تعيين السلاسل الملتقطة (أو القيمة <code>nil</code>) في متغيرات محلية تحمل نفس أسماء الالتقاطات.
  
إذا لم تكن هناك مطابقة، يُعطى لتلك المتغيرات القيمة nil.
+
إذا لم تكن هناك مطابقة، ستُعطى لتلك المتغيرات القيمة <code>nil</code>.
  
تنفذ الإحالة في محلل (parser) روبي. يرصد المحلل 'regexp-literal =~ expression' لأجل التعيين. يجب أن يكون regexp حرفيًا بدون تلقيم (interpolation)، وأن يوضع على الجانب الأيسر.
+
يُنفّذ التعيين في محلل (parser) روبي. حيث يرصد المحلل التعبير <code>'regexp-literal =~ expression'</code>لأجل التعيين. يجب أن يكون التعبير النمطي حرفيًا (literal)، وبدون تلقيم (interpolation)، وأن يوضع على الجانب الأيسر.  
لا تُنفّذ عملية التعيين إذا لم يكن التعبير النمطي حرفيًا.
 
  
تلقيم التعبير النمطي، <code>#{}</code>، سيلغي التعيين.
+
لن تُنفّذ عملية التعيين إذا لم يكن التعبير النمطي حرفيًا. كما أنّ تلقيم التعبير النمطي ‎<code>#{}</code>، سيلغي التعيين. ولن يحدث التعيين أيضًا إن وُضع التعبير النمطي على الجانب الأيمن.
 
 
لا يحدث التعيين إن وُضع التعبير النمطي على الجانب الأيمن.
 
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">rxp =~ str → integer or nil‎</syntaxhighlight>
 
<syntaxhighlight lang="ruby">rxp =~ str → integer or nil‎</syntaxhighlight>
 
==القيمة المُعادة==
 
==القيمة المُعادة==
 +
يُعاد عدد أو القيمة <code>ni</code>.
  
 
==أمثلة==
 
==أمثلة==
مثال على استخدام التابع <code>=~‎</code>:
+
مثال على استخدام التابع <code>=~‎</code>:
 
<syntaxhighlight lang="ruby">/at/ =~ "input data"  #=> 7
 
<syntaxhighlight lang="ruby">/at/ =~ "input data"  #=> 7
 
/ax/ =~ "input data"  #=> nil‎</syntaxhighlight>
 
/ax/ =~ "input data"  #=> nil‎</syntaxhighlight>
 
==انظر أيضا==
 
==انظر أيضا==
* التابع <code>[[Ruby/Regexp/case_equality|===]]</code>: معامل تساوي الحالة (Case Equality) - يُستخدم في العبارات case.
+
* التابع <code>[[Ruby/Regexp/case_equality|===]]</code>: معامل تساوي الحالة (Case Equality)
* التابع <code>[[Ruby/Regexp/casefold-3F|casefold?‎]]</code>: يعيد  قيمة راية الحساسية لحالة الأحرف (case-insensitive flag).
 
  
 
==مصادر==
 
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Regexp.html#method-i-3D~ قسم  التابع =~‎ في الصنف Regexp‎ في توثيق روبي الرسمي.]
+
*[http://ruby-doc.org/core-2.5.1/Regexp.html#method-i-3D~ قسم  التابع =~‎ في الصنف Regexp‎ في توثيق روبي الرسمي.]

مراجعة 23:14، 31 أكتوبر 2018

يبحث المعامل‎=~‎ عن تطابق للتعبير النمطي rxp (انظر فقرة البنية العامة) ضمن str.

إذا تم استخدام ‎=~‎ مع تعبير نمطي حرفي له التقاطات مسماة (named captures)، فسيتم تعيين السلاسل الملتقطة (أو القيمة nil) في متغيرات محلية تحمل نفس أسماء الالتقاطات.

إذا لم تكن هناك مطابقة، ستُعطى لتلك المتغيرات القيمة nil.

يُنفّذ التعيين في محلل (parser) روبي. حيث يرصد المحلل التعبير 'regexp-literal =~ expression'لأجل التعيين. يجب أن يكون التعبير النمطي حرفيًا (literal)، وبدون تلقيم (interpolation)، وأن يوضع على الجانب الأيسر.

لن تُنفّذ عملية التعيين إذا لم يكن التعبير النمطي حرفيًا. كما أنّ تلقيم التعبير النمطي ‎#{}‎، سيلغي التعيين. ولن يحدث التعيين أيضًا إن وُضع التعبير النمطي على الجانب الأيمن.

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

rxp =~ str  integer or nil

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

يُعاد عدد أو القيمة ni.

أمثلة

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

/at/ =~ "input data"   #=> 7
/ax/ =~ "input data"   #=> nil‎

انظر أيضا

  • التابع ===: معامل تساوي الحالة (Case Equality)

مصادر