الفرق بين المراجعتين ل"Python/re/escape"

من موسوعة حسوب
< Python‏ | re
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>re.escape()‎</code> في بايثون‎}}</noinclude> تهرّب الدالة جميع المحارف الخاصّة في...')
 
 
(مراجعتان متوسطتان بواسطة مستخدم واحد آخر غير معروضتين)
سطر 14: سطر 14:
 
== القيمة المعادة ==
 
== القيمة المعادة ==
 
تعيد الدالة النمط الأصلي بعد تهريب جميع المحارف الخاصّة فيه باستثناء حروف الترميز ASCII، والأعداد والشرطة السفلية. هذه الدالة مفيدة عند الحاجة إلى مطابقة سلسلة نصية يحتمل أن تتضمن بعض الحروف الخاصّة بالتعابير النمطية.
 
تعيد الدالة النمط الأصلي بعد تهريب جميع المحارف الخاصّة فيه باستثناء حروف الترميز ASCII، والأعداد والشرطة السفلية. هذه الدالة مفيدة عند الحاجة إلى مطابقة سلسلة نصية يحتمل أن تتضمن بعض الحروف الخاصّة بالتعابير النمطية.
 
 
 
== أمثلة ==
 
== أمثلة ==
تبيّن الأمثلة التالية طرق استخدام الدالة <code>re.sub()‎</code>:
+
تبيّن الأمثلة التالية طرق استخدام الدالة <code>re.escape()‎</code>:
  
 
<syntaxhighlight lang="python3">
 
<syntaxhighlight lang="python3">
سطر 32: سطر 30:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
لا يجوز استخدام هذه الدالة كسلسلة استبدال في الدالتين sub()‎ و subn()‎، ويجب تهريب الخطوط المائلة العكسية فقط. فمثلًا:
+
لا يجوز استخدام هذه الدالة كسلسلة استبدال في الدالتين <code>[[Python/re/sub|re.sub()‎]]</code> و <code>[[Python/re/subn|re.subn()‎]]</code>، ويجب تهريب الخطوط المائلة العكسية فقط. فمثلًا:
  
 
<syntaxhighlight lang="python3">
 
<syntaxhighlight lang="python3">
سطر 41: سطر 39:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
ملاحظة: لن تهرّب الشرطة السفلية '_' في الإصدار 3.3 من اللغة وما بعده.
+
'''ملاحظة:''' لن تهرّب الشرطة السفلية <code>'_'</code> في الإصدار 3.3 من اللغة وما بعده.
 
 
== انظر أيضًا ==
 
* التابع <code>[[Python/regex/sub|regex.escape()]]‎</code> في بايثون.
 
  
 
== مصادر ==
 
== مصادر ==
سطر 50: سطر 45:
  
 
[[تصنيف:Python]]
 
[[تصنيف:Python]]
 +
[[تصنيف:Python Function]]
 
[[تصنيف:Python Regular Expressions]]
 
[[تصنيف:Python Regular Expressions]]
 +
[[تصنيف:Python re]]

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

تهرّب الدالة جميع المحارف الخاصّة في التعبير النمطي المعطى باستثناء حروف الترميز ASCII، والأعداد والشرطة السفلية.

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

re.escape(pattern)

المعاملات

pattern

التعبير النمطي الذي تهرّب الدالة محارفه الخاصة.

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

تعيد الدالة النمط الأصلي بعد تهريب جميع المحارف الخاصّة فيه باستثناء حروف الترميز ASCII، والأعداد والشرطة السفلية. هذه الدالة مفيدة عند الحاجة إلى مطابقة سلسلة نصية يحتمل أن تتضمن بعض الحروف الخاصّة بالتعابير النمطية.

أمثلة

تبيّن الأمثلة التالية طرق استخدام الدالة re.escape()‎:

>>> print(re.escape('python.exe'))
python\.exe

>>> legal_chars = string.ascii_lowercase + string.digits + "!#$%&'*+-.^_`|~:"
>>> print('[%s]+' % re.escape(legal_chars))
[abcdefghijklmnopqrstuvwxyz0123456789\!\#\$\%\&\'\*\+\-\.\^_\`\|\~\:]+

>>> operators = ['+', '-', '*', '/', '**']
>>> print('|'.join(map(re.escape, sorted(operators, reverse=True))))
\/|\-|\+|\*\*|\*

لا يجوز استخدام هذه الدالة كسلسلة استبدال في الدالتين re.sub()‎ و re.subn()‎، ويجب تهريب الخطوط المائلة العكسية فقط. فمثلًا:

>>> digits_re = r'\d+'
>>> sample = '/usr/sbin/sendmail - 0 errors, 12 warnings'
>>> print(re.sub(digits_re, digits_re.replace('\\', r'\\'), sample))
/usr/sbin/sendmail - \d+ errors, \d+ warnings

ملاحظة: لن تهرّب الشرطة السفلية '_' في الإصدار 3.3 من اللغة وما بعده.

مصادر