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

من موسوعة حسوب
< Python‏ | regex
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>regex.search()‎</code> في بايثون‎}}</noinclude> يفحص هذا التابع السلسلة النصية الم...'
 
لا ملخص تعديل
سطر 14: سطر 14:
<code>pos</code>
<code>pos</code>


يحدّد المعامل الاختياري pos الموقع الذي يبدأ منه التابع البحث في السلسلة النصية، ويأخذ القيمة الافتراضية 0. إن تحديد موقع بدء عملية البحث ليس مطابقًا تمامًا لعملية تقطيع السلسلة النصية، فالمحرف '^' يطابق في بداية السلسلة النصية وفي المواقع التي تأتي بعد محرف السطر الجديد، ولكن ليس بالضرورة في الموقع الذي يبدأ التابع منه عملية البحث.  
يحدّد هذا المعامل الاختياري الموقع الذي يبدأ منه التابع البحث في السلسلة النصية، ويأخذ القيمة الافتراضية <code>0</code>. إن تحديد موقع بدء عملية البحث ليس مطابقًا تمامًا لعملية تقطيع السلسلة النصية، فالمحرف <code>'^'</code> يطابق في بداية السلسلة النصية وفي المواقع التي تأتي بعد محرف السطر الجديد، ولكن ليس بالضرورة في الموقع الذي يبدأ التابع منه عملية البحث.  


<code>endpos</code>
<code>endpos</code>


يحدّد المعامل الاختياري endpos الموقع الذي ينتهي عنده التابع من البحث في السلسة النصية، وهذا يعني أنّ عملية البحث عن التطابقات ستجري على المحارف التي تقع ضمن النطاق الذي يبدأ بالموقع pos وينتهي بالموقع endpos - 1. إن كانت قيمة endpos أقل من قيمة pos فلن يكون هناك أي حالة تطابق، وفيما عدا ذلك من الحالات، إن كان rx كائن تعبير نمطي مصرّف، فإنّ الدالة rx.search(string, 0, 50)‎ تكافئ الدالة rx.search(string[:50], 0)‎.
يحدّد هذا المعامل الاختياري الموقع الذي ينتهي عنده التابع من البحث في السلسة النصية، وهذا يعني أنّ عملية البحث عن التطابقات ستجري على المحارف التي تقع ضمن النطاق الذي يبدأ بالموقع <code>pos</code> وينتهي بالموقع <code>endpos - 1</code>. إن كانت قيمة <code>endpos</code> أقل من قيمة <code>pos</code> فلن يكون هناك أي حالة تطابق، وفيما عدا ذلك من الحالات، إن كان <code>rx</code> كائن تعبير نمطي مصرّف، فإنّ الدالة <code>rx.search(string, 0, 50)</code>‎ تكافئ الدالة <code>rx.search(string[:50], 0)‎</code>.


== القيمة المعادة ==
== القيمة المعادة ==
يعيد هذا التابع كائن التطابق المقابل عند العثور على حالة تطابق، ويعيد القيمة None إن لم يحصل أي تطابق بين التعبير النمطي والسلسلة النصية، ويجب الانتباه إلى أنّ هذه الحالة تختلف عن الحالة التي تجد الدالة فيها تطابقًا طوله 0 في مكان ما من السلسلة النصية.
يعيد هذا التابع كائن التطابق المقابل عند العثور على حالة تطابق، ويعيد القيمة <code>None</code> إن لم يحصل أي تطابق بين التعبير النمطي والسلسلة النصية، ويجب الانتباه إلى أنّ هذه الحالة تختلف عن الحالة التي تجد الدالة فيها تطابقًا طوله <code>0</code> في مكان ما من السلسلة النصية.


== أمثلة ==
== أمثلة ==
سطر 39: سطر 39:
== مصادر ==
== مصادر ==
* [https://docs.python.org/3/library/re.html#re.regex.search قسم Module Contents في صفحة Regular Expression Objects في توثيق بايثون الرسمي.]
* [https://docs.python.org/3/library/re.html#re.regex.search قسم Module Contents في صفحة Regular Expression Objects في توثيق بايثون الرسمي.]
* [[صفحة Regular Expression HOWTO في توثيق بايثون الرسمي.]]
[[تصنيف:Python]]
[[تصنيف:Python]]
[[تصنيف:Python Regular Expressions]]
[[تصنيف:Python Regular Expressions]]

مراجعة 11:55، 2 يونيو 2018

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

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

regex.search(string[, pos[, endpos]])

المعاملات

string

السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق.

pos

يحدّد هذا المعامل الاختياري الموقع الذي يبدأ منه التابع البحث في السلسلة النصية، ويأخذ القيمة الافتراضية 0. إن تحديد موقع بدء عملية البحث ليس مطابقًا تمامًا لعملية تقطيع السلسلة النصية، فالمحرف '^' يطابق في بداية السلسلة النصية وفي المواقع التي تأتي بعد محرف السطر الجديد، ولكن ليس بالضرورة في الموقع الذي يبدأ التابع منه عملية البحث.

endpos

يحدّد هذا المعامل الاختياري الموقع الذي ينتهي عنده التابع من البحث في السلسة النصية، وهذا يعني أنّ عملية البحث عن التطابقات ستجري على المحارف التي تقع ضمن النطاق الذي يبدأ بالموقع pos وينتهي بالموقع endpos - 1. إن كانت قيمة endpos أقل من قيمة pos فلن يكون هناك أي حالة تطابق، وفيما عدا ذلك من الحالات، إن كان rx كائن تعبير نمطي مصرّف، فإنّ الدالة rx.search(string, 0, 50)‎ تكافئ الدالة rx.search(string[:50], 0)‎.

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

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

أمثلة

يبين المثال التالي النتائج المعادة من استخدام التابع:

>>> import re
>>> pattern = re.compile("d")
>>> pattern.search("dog")     # يطابق عند الموقع 0
<_sre.SRE_Match object; span=(0, 1), match='d'>
>>> pattern.search("dog", 1)  # "d" لا يوجد حالة تطابق، لأنّ عملية البحث لا تتضمن الحرف

انظر أيضًا

مصادر