• 0

كيف أُهرب المحارف الخاصة في التعابير النمطية في بايثون؟

هل يملك بايثون دالة خاصة تُمكنني من تهريب المحارف الخاصة في التعابير النمطية؟ مثلا I'm "stuck" :\ ستصبح كهذه I\'m \"stuck\" :\\

تمّ تعديل بواسطة Blackhacker

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

نعم، يوجد عدة طرق في بايثون لفعل ذلك، فيمكنك على سبيل المثال استخدام دالة escape من وحدة re المتخصصة بالتعابير النمطية لتهريب المحارف كما في الأمثلة التالية:

re.escape(string)
>>> re.escape('\ a.*$')
'\\\\\\ a\\.\\*\\$'
>>> print(re.escape('\ a.*$'))
\\\ a\.\*\$
>>> re.escape('www.stackoverflow.com')
'www\\.stackoverflow\\.com'
>>> print(re.escape('www.stackoverflow.com'))
www\.stackoverflow\.com

التوثيق الرسمي يُعرف الدالة كتالي:

ترجع هذه الدالة سلسلة نصية مع وضع خط مائل خلفي لجميع المحارف غير الحرفية...

أو يمكنك فعل نفس الشيء عن طريق استخدام دالة sub من نفس المكتبة وبطرق متعددة كما في المثال التالي:

import re
print re.sub(r'([\"])',    r'\\\1', 'it\'s "this"')  # it's \"this\"
print re.sub(r"([\'])",    r'\\\1', 'it\'s "this"')  # it\'s "this"
print re.sub(r'([\" \'])', r'\\\1', 'it\'s "this"')  # it\'s\ \"this\"

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن