الفرق بين المراجعتين لصفحة: «Python/match/start»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>match.start()</code> في بايثون}}</noinclude> يعيد هذا التابع موقع بداية السلسلة ا...' |
لا ملخص تعديل |
||
سطر 2: | سطر 2: | ||
يعيد هذا التابع موقع بداية السلسلة الفرعية التي طوبقت بواسطة المجموعة الممرّرة. | يعيد هذا التابع موقع بداية السلسلة الفرعية التي طوبقت بواسطة المجموعة الممرّرة. | ||
==البنية العامة== | |||
== البنية العامة == | |||
<syntaxhighlight lang="python3"> | <syntaxhighlight lang="python3"> | ||
match.start([group]) | match.start([group]) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==المعاملات== | |||
===<code>group</code>=== | |||
المجموعة التي سيستخدمها التابع لمطابقة السلسلة النصية معها. يأخذ المعامل <code>group</code> القيمة الافتراضية <code>0</code> (أي أن التطابق حصل في السلسلة النصية الفرعية بأكملها). | |||
==القيمة المعادة== | |||
يعيد التابع موقع بداية السلسلة الفرعية التي طوبقت بواسطة المجموعة الممرّرة. ويعيد التابع القيمة <code>-1</code> إن كانت المجموعة موجودة ولكنّها لا تساهم في حالة التطابق. | |||
لو فرضنا وجود كائن تطابق <code>m</code> ومجموعة <code>g</code> تساهم في حالة التطابق، فإن السلسلة الفرعية المطابقة بواسطة المجموعة <code>g</code> (تكافئ التابع <code>[[Python/match/group|m.group(g)]]</code>) هي:<syntaxhighlight lang="python3"> | |||
m.string[m.start(g):m.end(g)] | m.string[m.start(g):m.end(g)] | ||
</syntaxhighlight>لاحظ أنّ القيمة المعادة من التابع <code>m.start(group)</code> ستكون مساوية للنتيجة المعادة من <code>[[Python/match/end|m.end(group)]]</code> إن طابقت المجموعة سلسلة نصية فارغة. | |||
لاحظ أنّ القيمة المعادة من التابع m.start(group) ستكون مساوية للنتيجة المعادة من m.end(group) إن طابقت المجموعة سلسلة نصية فارغة. | ==أمثلة== | ||
يبين المثال التالي النتائج المعادة من هذا التابع:<syntaxhighlight lang="python3"> | |||
== أمثلة == | |||
يبين المثال التالي النتائج المعادة من هذا التابع: | |||
<syntaxhighlight lang="python3"> | |||
>>> m = re.search('b(c?)', 'cba') | >>> m = re.search('b(c?)', 'cba') | ||
>>> m.start(0) | >>> m.start(0) | ||
1 | 1 | ||
>>> m.start(1) | >>> m.start(1) | ||
2 | 2 | ||
>>> m.start(2) | >>> m.start(2) | ||
سطر 43: | سطر 27: | ||
m.start(2) | m.start(2) | ||
IndexError: no such group | IndexError: no such group | ||
</syntaxhighlight> | </syntaxhighlight>مثال آخر يجري فيه حذف عبارة <code>'remove_this'</code> من عنوان بريد إلكتروني:<syntaxhighlight lang="python3"> | ||
مثال آخر يجري فيه حذف عبارة 'remove_this' من عنوان بريد إلكتروني: | |||
<syntaxhighlight lang="python3"> | |||
>>> email = "tony@tiremove_thisger.net" | >>> email = "tony@tiremove_thisger.net" | ||
>>> m = re.search("remove_this", email) | >>> m = re.search("remove_this", email) | ||
سطر 53: | سطر 33: | ||
'tony@tiger.net' | 'tony@tiger.net' | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | |||
== انظر أيضًا == | *التابع [[Python/match/end|<code>match.end()</code>]] في بايثون. | ||
==مصادر== | |||
* التابع [[Python/match/end|<code>match.end()</code>]] في بايثون. | * <span> </span>[https://docs.python.org/3/library/re.html#re.match.start قسم match في صفحة Regular expression operations في توثيق بايثون الرسمي]. | ||
== مصادر == | |||
* [https://docs.python.org/3/library/re.html#re.match.start قسم match في صفحة Regular expression operations في توثيق بايثون الرسمي]. | |||
[[تصنيف:Python]] | [[تصنيف:Python]] | ||
[[تصنيف:Python Regular Expressions]] | [[تصنيف:Python Regular Expressions]] |
مراجعة 12:03، 5 يونيو 2018
يعيد هذا التابع موقع بداية السلسلة الفرعية التي طوبقت بواسطة المجموعة الممرّرة.
البنية العامة
match.start([group])
المعاملات
group
المجموعة التي سيستخدمها التابع لمطابقة السلسلة النصية معها. يأخذ المعامل group
القيمة الافتراضية 0
(أي أن التطابق حصل في السلسلة النصية الفرعية بأكملها).
القيمة المعادة
يعيد التابع موقع بداية السلسلة الفرعية التي طوبقت بواسطة المجموعة الممرّرة. ويعيد التابع القيمة -1
إن كانت المجموعة موجودة ولكنّها لا تساهم في حالة التطابق.
لو فرضنا وجود كائن تطابق m
ومجموعة g
تساهم في حالة التطابق، فإن السلسلة الفرعية المطابقة بواسطة المجموعة g
(تكافئ التابع m.group(g)
) هي:
m.string[m.start(g):m.end(g)]
لاحظ أنّ القيمة المعادة من التابع m.start(group)
ستكون مساوية للنتيجة المعادة من m.end(group)
إن طابقت المجموعة سلسلة نصية فارغة.
أمثلة
يبين المثال التالي النتائج المعادة من هذا التابع:
>>> m = re.search('b(c?)', 'cba')
>>> m.start(0)
1
>>> m.start(1)
2
>>> m.start(2)
Traceback (most recent call last):
File "<input>", line 1, in <module>
m.start(2)
IndexError: no such group
مثال آخر يجري فيه حذف عبارة 'remove_this'
من عنوان بريد إلكتروني:
>>> email = "tony@tiremove_thisger.net"
>>> m = re.search("remove_this", email)
>>> email[:m.start()] + email[m.end():]
'tony@tiger.net'
انظر أيضًا
- التابع
match.end()
في بايثون.