الفرق بين المراجعتين ل"Python/regex/match"
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>regex.match()</code> في بايثون}}</noinclude> يفحص هذا التابع بداية السلسلة النصي...') |
|||
(4 مراجعات متوسطة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:التابع <code>regex.match()</code> في بايثون}}</noinclude> | <noinclude>{{DISPLAYTITLE:التابع <code>regex.match()</code> في بايثون}}</noinclude> | ||
− | يفحص هذا التابع بداية السلسلة النصية المعطاة بحثًا عن حالة تطابق مع التعبير النمطي | + | يفحص هذا التابع بداية السلسلة النصية المعطاة بحثًا عن حالة تطابق مع التعبير النمطي المصرّف، ويعيد كائن التطابق المقابل. |
== البنية العامة == | == البنية العامة == | ||
سطر 21: | سطر 21: | ||
== القيمة المعادة == | == القيمة المعادة == | ||
− | يعيد التابع كائن match المقابل إن عثر على صفر أو أكثر من المحارف في بداية السلسلة النصية تطابق التعبير النمطي المعطى، ويعيد القيمة None إن لم تتطابق السلسلة النصية مع التعبير النمطي، ويجب الانتباه إلى أنّ هذه الحالة تختلف عن الحالة التي يجد التابع فيها تطابقًا طوله 0. | + | يعيد التابع كائن <code>match</code> المقابل إن عثر على صفر أو أكثر من المحارف في بداية السلسلة النصية تطابق التعبير النمطي المعطى، ويعيد القيمة <code>None</code> إن لم تتطابق السلسلة النصية مع التعبير النمطي، ويجب الانتباه إلى أنّ هذه الحالة تختلف عن الحالة التي يجد التابع فيها تطابقًا طوله <code>0</code>. |
== ملاحظة == | == ملاحظة == | ||
− | إن كان المطلوب العثور على حالات التطابق في أي مكان ضمن السلسلة النصية، استخدم التابع regex.search() عوضًا عن هذا التابع. (انظر أيضًا الفرق بين search() و match()). | + | إن كان المطلوب العثور على حالات التطابق في أي مكان ضمن السلسلة النصية، استخدم التابع <code>[[Python/regex/search|regex.search()]]</code> عوضًا عن هذا التابع. (انظر أيضًا الفرق بين <code>search()</code> و <code>match()</code>). |
== أمثلة == | == أمثلة == | ||
− | في المثال التالي لا وجود لحالة تطابق عند تطبيق التابع match() دون استخدام المعاملات الأخرى؛ وذلك لأنّ الحرف "o" لم يرد في بداية الكلمة "dog". ولكن عند تمرير القيمة 1 للمعامل pos تظهر حالة تطابق لأنّ الحرف "o" هو الحرف الثاني في الكلمة. | + | في المثال التالي لا وجود لحالة تطابق عند تطبيق التابع <code>match()</code> دون استخدام المعاملات الأخرى؛ وذلك لأنّ الحرف <code>"o"</code> لم يرد في بداية الكلمة <code>"dog"</code>. ولكن عند تمرير القيمة <code>1</code> للمعامل <code>pos</code> تظهر حالة تطابق لأنّ الحرف <code>"o"</code> هو الحرف الثاني في الكلمة. |
<syntaxhighlight lang="python3"> | <syntaxhighlight lang="python3"> | ||
سطر 38: | سطر 38: | ||
== انظر أيضًا == | == انظر أيضًا == | ||
− | * الدالة <code>[[Python/re/search|re.match()]]</code> | + | * الدالة <code>[[Python/re/search|re.match()]]</code>: تفحص الدالة السلسلة النصية بحثًا عن أول موقع يحصل فيه تطابق مع التعبير النمطي المعطى، وتعيد [[Python/match|كائن <code>match</code>]] المقابل. |
== مصادر == | == مصادر == | ||
* [https://docs.python.org/3/library/re.html#re.regex.match قسم Module Contents في صفحة Regular Expression Objects في توثيق بايثون الرسمي.] | * [https://docs.python.org/3/library/re.html#re.regex.match قسم Module Contents في صفحة Regular Expression Objects في توثيق بايثون الرسمي.] | ||
[[تصنيف:Python]] | [[تصنيف:Python]] | ||
+ | [[تصنيف:Python Method]] | ||
[[تصنيف:Python Regular Expressions]] | [[تصنيف:Python Regular Expressions]] | ||
+ | [[تصنيف:Python regex]] |
المراجعة الحالية بتاريخ 14:27، 18 يونيو 2018
يفحص هذا التابع بداية السلسلة النصية المعطاة بحثًا عن حالة تطابق مع التعبير النمطي المصرّف، ويعيد كائن التطابق المقابل.
البنية العامة
regex.match(string[, pos[, endpos]])
المعاملات
string
السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق.
pos
يحدّد هذا المعامل الاختياري الموقع الذي يبدأ منه التابع البحث في السلسلة النصية، ويأخذ القيمة الافتراضية 0
. إن تحديد موقع بدء عملية البحث ليس مطابقًا تمامًا لعملية تقطيع السلسلة النصية، فالمحرف '^'
يطابق في بداية السلسلة النصية وفي المواقع التي تأتي بعد محرف السطر الجديد، ولكن ليس بالضرورة في الموقع الذي يبدأ التابع منه عملية البحث.
endpos
يحدّد هذا المعامل الاختياري الموقع الذي ينتهي عنده التابع من البحث في السلسة النصية، وهذا يعني أنّ عملية البحث عن التطابقات ستجري على المحارف التي تقع ضمن النطاق الذي يبدأ بالموقع pos
وينتهي بالموقع endpos - 1
. إن كانت قيمة endpos
أقل من قيمة pos
فلن يكون هناك أي حالة تطابق، وفيما عدا ذلك من الحالات، إن كان rx
كائن تعبير نمطي مصرّف، فإنّ الدالة rx.search(string, 0, 50)
تكافئ الدالة rx.search(string[:50], 0)
.
القيمة المعادة
يعيد التابع كائن match
المقابل إن عثر على صفر أو أكثر من المحارف في بداية السلسلة النصية تطابق التعبير النمطي المعطى، ويعيد القيمة None
إن لم تتطابق السلسلة النصية مع التعبير النمطي، ويجب الانتباه إلى أنّ هذه الحالة تختلف عن الحالة التي يجد التابع فيها تطابقًا طوله 0
.
ملاحظة
إن كان المطلوب العثور على حالات التطابق في أي مكان ضمن السلسلة النصية، استخدم التابع regex.search()
عوضًا عن هذا التابع. (انظر أيضًا الفرق بين search()
و match()
).
أمثلة
في المثال التالي لا وجود لحالة تطابق عند تطبيق التابع match()
دون استخدام المعاملات الأخرى؛ وذلك لأنّ الحرف "o"
لم يرد في بداية الكلمة "dog"
. ولكن عند تمرير القيمة 1
للمعامل pos
تظهر حالة تطابق لأنّ الحرف "o"
هو الحرف الثاني في الكلمة.
>>> pattern = re.compile("o")
>>> pattern.match("dog")
>>> pattern.match("dog", 1)
<_sre.SRE_Match object; span=(1, 2), match='o'>
انظر أيضًا
- الدالة
re.match()
: تفحص الدالة السلسلة النصية بحثًا عن أول موقع يحصل فيه تطابق مع التعبير النمطي المعطى، وتعيد كائنmatch
المقابل.