الفرق بين المراجعتين لصفحة: «Python/regex/finditer»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>regex.finditer()</code> في بايثون}}</noinclude> يعيد التابع كائنًا قابلًا للتكرا...' |
لا ملخص تعديل |
||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:التابع <code>regex.finditer()</code> في بايثون}}</noinclude> | <noinclude>{{DISPLAYTITLE:التابع <code>regex.finditer()</code> في بايثون}}</noinclude> | ||
يعيد التابع كائنًا قابلًا للتكرار iterator ينتج عنه كائنات <code>match</code> لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة. | يعيد التابع كائنًا قابلًا للتكرار iterator ينتج عنه [[Python/match|كائنات <code>match</code>]] لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة. | ||
== البنية العامة == | == البنية العامة == | ||
سطر 15: | سطر 15: | ||
<code>pos</code> | <code>pos</code> | ||
يحدّد هذا المعامل الاختياري الموقع الذي يبدأ منه التابع البحث في السلسلة النصية، ويأخذ القيمة الافتراضية 0. إن تحديد موقع بدء عملية البحث ليس مطابقًا تمامًا لعملية تقطيع السلسلة النصية، فالمحرف '^' يطابق في بداية السلسلة النصية وفي المواقع التي تأتي بعد محرف السطر الجديد، ولكن ليس بالضرورة في الموقع الذي يبدأ التابع منه عملية البحث. | يحدّد هذا المعامل الاختياري الموقع الذي يبدأ منه التابع البحث في السلسلة النصية، ويأخذ القيمة الافتراضية <code>0</code>. إن تحديد موقع بدء عملية البحث ليس مطابقًا تمامًا لعملية تقطيع السلسلة النصية، فالمحرف <code>'^'</code> يطابق في بداية السلسلة النصية وفي المواقع التي تأتي بعد محرف السطر الجديد، ولكن ليس بالضرورة في الموقع الذي يبدأ التابع منه عملية البحث. | ||
endpos | <code>endpos</code> | ||
يحدّد هذا المعامل الاختياري الموقع الذي ينتهي عنده التابع من البحث في السلسة النصية، وهذا يعني أنّ عملية البحث عن التطابقات ستجري على المحارف التي تقع ضمن النطاق الذي يبدأ بالموقع pos وينتهي بالموقع endpos - 1. إن كانت قيمة endpos أقل من قيمة pos فلن يكون هناك أي حالة تطابق | يحدّد هذا المعامل الاختياري الموقع الذي ينتهي عنده التابع من البحث في السلسة النصية، وهذا يعني أنّ عملية البحث عن التطابقات ستجري على المحارف التي تقع ضمن النطاق الذي يبدأ بالموقع <code>pos</code> وينتهي بالموقع <code>endpos - 1</code>. إن كانت قيمة <code>endpos</code> أقل من قيمة <code>pos</code> فلن يكون هناك أي حالة تطابق | ||
== القيمة المعادة == | == القيمة المعادة == | ||
يعيد الدالة كائنًا قابلًا للتكرار iterator ينتج عنه كائنات <code>match</code> لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة. | يعيد الدالة كائنًا قابلًا للتكرار iterator ينتج عنه كائنات <code>match</code> لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة. | ||
هذا التابع مطابق للدالة re.finditer() ويستخدم التعبير النمطي المصرّف، ولكنّه يختلف عن الدالة في كونه يأخذ معاملين اختياريين هما pos و endpos والذي يحدّدان بداية ونهاية عملية البحث | |||
هذا التابع مطابق للدالة <code>[[Python/re/finditer|re.finditer()]]</code> ويستخدم التعبير النمطي المصرّف، ولكنّه يختلف عن الدالة في كونه يأخذ معاملين اختياريين هما <code>pos</code> و <code>endpos</code> والذي يحدّدان بداية ونهاية عملية البحث. | |||
== أمثلة == | == أمثلة == | ||
يبين المثال التالي طريقة استخدام | يبين المثال التالي طريقة استخدام التابع والنتائج المعادة منه: | ||
<syntaxhighlight lang="python3"> | <syntaxhighlight lang="python3"> | ||
سطر 44: | سطر 45: | ||
== انظر أيضًا == | == انظر أيضًا == | ||
* الدالة <code>[[Python/re/ | * الدالة <code>[[Python/re/finditer|re.finditer()]]</code>: تعيد الدالة جميع حالات التطابق غير المتداخلة للنمط المطبق على السلسلة النصية المعطاة على هيئة قائمة من السلاسل النصية. | ||
* الدالة <code>[[Python/regex/findall|regex.findall()]]</code>: يعيد التابع كائنًا قابلًا للتكرار iterator ينتج عنه <nowiki/>[[Python/match|كائنات <code>match</code>]] لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة. | |||
* الدالة <code>[[Python/re/finditer|re.findall()]]</code>: تعيد الدالة كائنًا قابلًا للتكرار iterator ينتج عنه <nowiki/>[[Python/match|كائنات <code>match</code>]] لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المعطى على السلسلة النصية المعطاة. | |||
== مصادر == | == مصادر == | ||
* [https://docs.python.org/3/library/re.html#re.regex.finditer قسم Module Contents في صفحة Regular expressions operations في توثيق بايثون الرسمي.] | * [https://docs.python.org/3/library/re.html#re.regex.finditer قسم Module Contents في صفحة Regular expressions operations في توثيق بايثون الرسمي.] | ||
[[تصنيف:Python]] | [[تصنيف:Python]] | ||
[[تصنيف:Python Regular Expressions]] | [[تصنيف:Python Regular Expressions]] | ||
[[تصنيف:Python Method]] |
المراجعة الحالية بتاريخ 10:30، 12 يونيو 2018
يعيد التابع كائنًا قابلًا للتكرار iterator ينتج عنه كائنات match
لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة.
البنية العامة
regex.finditer(string[, pos[, endpos]])
المعاملات
string
السلسلة النصية التي سيبحث فيها التابع عن حالات التطابق.
pos
يحدّد هذا المعامل الاختياري الموقع الذي يبدأ منه التابع البحث في السلسلة النصية، ويأخذ القيمة الافتراضية 0
. إن تحديد موقع بدء عملية البحث ليس مطابقًا تمامًا لعملية تقطيع السلسلة النصية، فالمحرف '^'
يطابق في بداية السلسلة النصية وفي المواقع التي تأتي بعد محرف السطر الجديد، ولكن ليس بالضرورة في الموقع الذي يبدأ التابع منه عملية البحث.
endpos
يحدّد هذا المعامل الاختياري الموقع الذي ينتهي عنده التابع من البحث في السلسة النصية، وهذا يعني أنّ عملية البحث عن التطابقات ستجري على المحارف التي تقع ضمن النطاق الذي يبدأ بالموقع pos
وينتهي بالموقع endpos - 1
. إن كانت قيمة endpos
أقل من قيمة pos
فلن يكون هناك أي حالة تطابق
القيمة المعادة
يعيد الدالة كائنًا قابلًا للتكرار iterator ينتج عنه كائنات match
لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة.
هذا التابع مطابق للدالة re.finditer()
ويستخدم التعبير النمطي المصرّف، ولكنّه يختلف عن الدالة في كونه يأخذ معاملين اختياريين هما pos
و endpos
والذي يحدّدان بداية ونهاية عملية البحث.
أمثلة
يبين المثال التالي طريقة استخدام التابع والنتائج المعادة منه:
>>> import re
>>> p = re.compile(r'\d+')
>>> iterator = p.finditer('12 drumers drumming, 11 ... 10 ...')
>>> iterator
<callable_iterator object at 0x7f07b66dd0b8>
>>> for match in iterator:
... print(match.span())
...
...
(0, 2)
(21, 23)
(28, 30)
انظر أيضًا
- الدالة
re.finditer()
: تعيد الدالة جميع حالات التطابق غير المتداخلة للنمط المطبق على السلسلة النصية المعطاة على هيئة قائمة من السلاسل النصية. - الدالة
regex.findall()
: يعيد التابع كائنًا قابلًا للتكرار iterator ينتج عنه كائناتmatch
لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة.
- الدالة
re.findall()
: تعيد الدالة كائنًا قابلًا للتكرار iterator ينتج عنه كائناتmatch
لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المعطى على السلسلة النصية المعطاة.