الفرق بين المراجعتين لصفحة: «Python/regex»

من موسوعة حسوب
لا ملخص تعديل
لا ملخص تعديل
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الكائن <code>regex</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:الكائن <code>regex</code> في بايثون}}</noinclude>
ينشأ كائن التعبير النمطي <code>regex</code> من تصريف التعبير النمطي بواسطة الدالة <code>[[Python/re/compile|re.compile()‎]]</code>، ويقدّم هذا الكائن مجموعة من الخصائص والتوابع التي يمكن من خلالها إجراء العديد من العمليات على التعابير النمطية المصرّفة.
ينشأ كائن التعبير النمطي <code>regex</code> من تصريف التعبير النمطي بواسطة الدالة <code>[[Python/re/compile|re.compile()‎]]</code>، ويقدّم هذا الكائن مجموعة من الخصائص والتوابع التي يمكن من خلالها إجراء العديد من العمليات على التعابير النمطية المصرّفة.


سطر 36: سطر 34:
يقدّم الكائن <code>regex</code> التوابع التالية:
يقدّم الكائن <code>regex</code> التوابع التالية:


=== التابع <code>[[Python/regex/search|regex.search()‎]]</code> ===
=== <code>[[Python/regex/search|regex.search()‎]]</code> ===
يفحص هذا التابع السلسلة النصية المعطاة بحثًا عن أول موقع يحصل فيه تطابق مع التعبير النمطي المصرّف، ويعيد كائن التطابق المقابل.
يفحص هذا التابع السلسلة النصية المعطاة بحثًا عن أول موقع يحصل فيه تطابق مع التعبير النمطي المصرّف، ويعيد كائن التطابق المقابل.


=== التابع <code>[[Python/regex/match|regex.match()]]</code>‎ ===
=== <code>[[Python/regex/match|regex.match()]]</code>‎ ===
يفحص هذا التابع بداية السلسلة النصية المعطاة بحثًا عن حالة تطابق مع التعبير النمطي المصرّف، ويعيد كائن التطابق المقابل.
يفحص هذا التابع بداية السلسلة النصية المعطاة بحثًا عن حالة تطابق مع التعبير النمطي المصرّف، ويعيد كائن التطابق المقابل.


=== التابع <code>[[Python/regex/fullmatch|regex.fullmatch()]]</code>‎ ===
=== <code>[[Python/regex/fullmatch|regex.fullmatch()]]</code>‎ ===
يتحقّق هذا التابع من تطابق التعبير النمطي المصرّف مع السلسلة النصية المعطاة كاملة، ويعيد كائن التطابق المقابل.
يتحقّق هذا التابع من تطابق التعبير النمطي المصرّف مع السلسلة النصية المعطاة كاملة، ويعيد كائن التطابق المقابل.


=== التابع <code>[[Python/regex/split|regex.split()]]</code>‎ ===
=== <code>[[Python/regex/split|regex.split()]]</code>‎ ===
يقسم التابع السلسلة النصية عند كل مكان تحدث فيه عملية مطابقة للنمط المصرّف. هذا التابع مطابق تمامًا للدالة <nowiki/>[[Python/re/split|<code>re.split()‎</code>]].
يقسم التابع السلسلة النصية عند كل مكان تحدث فيه عملية مطابقة للنمط المصرّف. هذا التابع مطابق تمامًا للدالة <nowiki/>[[Python/re/split|<code>re.split()‎</code>]].


=== التابع <code>[[Python/regex/findall|regex.findall()]]</code>‎ ===
=== <code>[[Python/regex/findall|regex.findall()]]</code>‎ ===
يعيد التابع جميع حالات التطابق غير المتداخلة للنمط المصرّف والمطبّق على السلسلة النصية المعطاة على هيئة قائمة من السلاسل النصية.
يعيد التابع جميع حالات التطابق غير المتداخلة للنمط المصرّف والمطبّق على السلسلة النصية المعطاة على هيئة قائمة من السلاسل النصية.


=== التابع <code>[[Python/regex/finditer|regex.finditer()]]‎</code> ===
=== <code>[[Python/regex/finditer|regex.finditer()]]‎</code> ===
يعيد التابع كائنًا قابلًا للتكرار iterator ينتج عنه كائنات <code>match</code> لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة.
يعيد التابع كائنًا قابلًا للتكرار iterator ينتج عنه كائنات <code>match</code> لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة.


=== التابع <code>[[Python/regex/sub|regex.sub()]]</code>‎ ===
=== <code>[[Python/regex/sub|regex.sub()]]</code>‎ ===
يبدل التابع حالات التطابق غير المتداخلة في أقصى اليسار -والناتجة عن تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة- بسلسلة نصية أو بالقيمة المعادة من دالة.
يبدل التابع حالات التطابق غير المتداخلة في أقصى اليسار -والناتجة عن تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة- بسلسلة نصية أو بالقيمة المعادة من دالة.


=== التابع <code>[[Python/regex/subn|regex.subn()]]</code>‎ ===
=== <code>[[Python/regex/subn|regex.subn()]]</code>‎ ===
يؤدي هذا التابع نفس عمل التابع <code>[[Python/regex/sub|regex.sub()‎]]</code> ولكنّه يعيد الناتج على هيئة <nowiki/>[[Python/tuples|صفّ]] (السلسلة الجديدة، عدد الاستبدالات المجراة).
يؤدي هذا التابع نفس عمل التابع <code>[[Python/regex/sub|regex.sub()‎]]</code> ولكنّه يعيد الناتج على هيئة <nowiki/>[[Python/tuples|صفّ]] (السلسلة الجديدة، عدد الاستبدالات المجراة).


== انظر أيضًا ==
== انظر أيضًا ==
* [[Python/match|الكائن match في بايثون]].
* [[Python/match|الكائن match]] : ينشأ هذا الكائن كنتيجة لتطبيق التابعين <code>[[Python/regex/match|regex.match()‎]]</code> و <nowiki/>[[Python/regex/search|<code>regex.search()</code>‎]] على التعبير النمطي المصرّف.
* [[Python/re|الوحدة re في بايثون]].
* [[Python/re|الوحدة re]]: تقّدم الوحدة <code>re</code> مجموعة من العمليات الخاصة بمطابقة التعابير النمطية (Regular Expressions) وهي مشابهة إلى حدّ كبير للعمليات الموجودة في لغة Perl.


== مصادر ==
== مصادر ==
* [https://docs.python.org/3/library/re.html#module-re صفحة Regular expression operations في توثيق بايثون الرسمي.]
* [https://docs.python.org/3/library/re.html#module-re صفحة Regular expression operations في توثيق بايثون الرسمي.]
[[تصنيف:Python]]
[[تصنيف:Python Modules]]
[[تصنيف:Python Regular Expressions]]
[[تصنيف:Python regex]]

المراجعة الحالية بتاريخ 14:28، 18 يونيو 2018

ينشأ كائن التعبير النمطي regex من تصريف التعبير النمطي بواسطة الدالة re.compile()‎، ويقدّم هذا الكائن مجموعة من الخصائص والتوابع التي يمكن من خلالها إجراء العديد من العمليات على التعابير النمطية المصرّفة.

خصائص الكائن regex

يقدّم الكائن regex الخصائص التالية:

regex.flags

رايات التطابق الخاص بالكائن regex، وتمثّل مجموعة الرايات التي تمرّر إلى الدالة re.compile()‎، إضافة إلى الرايات السطرية (‎?...‎) في التعابير النمطية، والرايات الضمنية مثل UNICODE إن كان التعبير النمطي سلسلة نصية بترميز Unicode.

regex.groups

عدد مجموعات الالتقاط في التعبير النمطي.

regex.groupindex

قاموس يربط أسماء المجموعات الرمزية والمعرّفة بواسطة التعبير ‎(?P<id>)‎ بأعداد المجموعات. يكون القاموس خاليًا إن لم تستخدم أي مجموعة رمزية في التعبير النمطي.

regex.pattern

سلسلة التعبير النمطي التي استُخدمت لتصريف كائن التعبير النمطي.

تقدّم الشيفرة التالية مثالًا عن القيم التي يمكن أن تحملها هذه الخصائص:

>>> import re
>>> p = re.compile(r'(?P<word>\b\w+\b)', re.IGNORECASE)
>>> p.flags
34
>>> p.groups
1
>>> p.groupindex
mappingproxy({'word': 1})
>>> p.pattern
'(?P<word>\\b\\w+\\b)'

توابع الكائن regex

يقدّم الكائن regex التوابع التالية:

regex.search()‎

يفحص هذا التابع السلسلة النصية المعطاة بحثًا عن أول موقع يحصل فيه تطابق مع التعبير النمطي المصرّف، ويعيد كائن التطابق المقابل.

regex.match()

يفحص هذا التابع بداية السلسلة النصية المعطاة بحثًا عن حالة تطابق مع التعبير النمطي المصرّف، ويعيد كائن التطابق المقابل.

regex.fullmatch()

يتحقّق هذا التابع من تطابق التعبير النمطي المصرّف مع السلسلة النصية المعطاة كاملة، ويعيد كائن التطابق المقابل.

regex.split()

يقسم التابع السلسلة النصية عند كل مكان تحدث فيه عملية مطابقة للنمط المصرّف. هذا التابع مطابق تمامًا للدالة re.split()‎.

regex.findall()

يعيد التابع جميع حالات التطابق غير المتداخلة للنمط المصرّف والمطبّق على السلسلة النصية المعطاة على هيئة قائمة من السلاسل النصية.

regex.finditer()

يعيد التابع كائنًا قابلًا للتكرار iterator ينتج عنه كائنات match لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة.

regex.sub()

يبدل التابع حالات التطابق غير المتداخلة في أقصى اليسار -والناتجة عن تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة- بسلسلة نصية أو بالقيمة المعادة من دالة.

regex.subn()

يؤدي هذا التابع نفس عمل التابع regex.sub()‎ ولكنّه يعيد الناتج على هيئة صفّ (السلسلة الجديدة، عدد الاستبدالات المجراة).

انظر أيضًا

  • الكائن match : ينشأ هذا الكائن كنتيجة لتطبيق التابعين regex.match()‎ و regex.search() على التعبير النمطي المصرّف.
  • الوحدة re: تقّدم الوحدة re مجموعة من العمليات الخاصة بمطابقة التعابير النمطية (Regular Expressions) وهي مشابهة إلى حدّ كبير للعمليات الموجودة في لغة Perl.

مصادر